Курсовая работа: Доказательство корректности функциональной реализации библиотек принтер-комбинаторов с выбором
Описание
принтер-комбинаторов с выбором
Оглавление
2
Введение
Данная работа посвящена задаче преобразования данных из некоторого абстракт-ного вида, например, синтаксических деревьев программ, в текст. Такая задача назы-вается pretty printing, а соответствующий инструмент pretty printer (далее принтер).
Один и тот же текст можно печатать по-разному. Рассмотрим процедуру bar на языке C#: на рис. 1 и 2 представлены три результата форматирования текста этой процедуры, и каждый соответствуют одному абстрактному синтаксическому дереву.
Рис. 1: Процедура bar: неформатированный код
(a) Без учета ширины (b) С учетом ширины
Рис. 2: Процедура bar: форматированный код
Текст процедуры bar, представленный на рис. 1, читать трудно, так как в нем явно не прослеживается структура программы. Следует отметить, что в рамках од-ного языка существует несколько способов текстового представления одной и той же программы (проще говоря, способов форматирования), например удовлетворяющих разным стандартам (такие стандарты существуют в большинстве крупных промыш-ленных проектах). Например, могут разрешаться длинные языковые конструкции (рис. 2a), но недостатком такого представления является то, текст может не поме-щаться в ширину экрана. Форматирование с ограничением на ширину вывода ил-люстрируется на рис. 2b. Таким образом
Оглавление
| Введение | 3 | ||
| 1. | Постановка задачи | 5 | |
| 2. | Обзор литературы и существующих решений | 6 | |
| 2.1. | Общая модель принтер-комбинаторов с выбором . . . . . . . . . . . . . . | 6 | |
| 2.2. | Хранениераскладок............................... | 8 | |
| 2.3. | Общий алгоритм работы принтер-комбинаторов с выбором . . . . . . . . | 9 | |
| 2.4. | Тривиальная реализация принтер-комбинаторов с выбором . . . . . . . | 9 | |
| 2.5. | Фильтрация с помощью поиска множества Парето . . . . . . . . . . . . . | 9 | |
| 2.6. | Верификация библиотек принтер-комбинаторов с выбором . . . . . . . . | 10 | |
| 3. | Свойства принтер-комбинаторов с выбором | 11 | |
| 3.1. | Корректностьраскладок............................ | 11 | |
| 3.2. | Модификация частичного порядка . . . . . . . . . . . . . . . . . . . . . . | 12 | |
| 3.3. | Корректностькомбинаторов.......................... | 13 | |
| 4. | Корректность библиотек принтер-комбинаторов с выбором | 15 | |
| 4.1. | Понятие корректности реализаций . . . . . . . . . . . . . . . . . . . . . . | 15 | |
| 4.2. | Доказательство корректности реализации с фильтрацией по Парето . . | 16 | |
| 5. | Экстракция кода | 18 | |
| 6. | Заключение | 19 | |
| 7. | Благодарности | 20 | |
| Список литературы | 21 | ||
2
Введение
Данная работа посвящена задаче преобразования данных из некоторого абстракт-ного вида, например, синтаксических деревьев программ, в текст. Такая задача назы-вается pretty printing, а соответствующий инструмент pretty printer (далее принтер).
- качестве примера данных будем рассматривать синтаксические деревья про-грамм. В сфере IT программы используются повсеместно, а потому демонстрировать работу принтеров на них удобно.
Один и тот же текст можно печатать по-разному. Рассмотрим процедуру bar на языке C#: на рис. 1 и 2 представлены три результата форматирования текста этой процедуры, и каждый соответствуют одному абстрактному синтаксическому дереву.
Рис. 1: Процедура bar: неформатированный код
(a) Без учета ширины (b) С учетом ширины
Рис. 2: Процедура bar: форматированный код
Текст процедуры bar, представленный на рис. 1, читать трудно, так как в нем явно не прослеживается структура программы. Следует отметить, что в рамках од-ного языка существует несколько способов текстового представления одной и той же программы (проще говоря, способов форматирования), например удовлетворяющих разным стандартам (такие стандарты существуют в большинстве крупных промыш-ленных проектах). Например, могут разрешаться длинные языковые конструкции (рис. 2a), но недостатком такого представления является то, текст может не поме-щаться в ширину экрана. Форматирование с ограничением на ширину вывода ил-люстрируется на рис. 2b. Таким образом
Характеристики курсовой работы
Учебное заведение
Семестр
Просмотров
1
Размер
354 Kb
Список файлов
Доказательство корректности функциональной реализации библиотек принтер-комбинаторов с выбором.doc
Комментарии
Нет комментариев
Стань первым, кто что-нибудь напишет!
МГУ им. Ломоносова
Tortuga













