Введение
1. Языки и системы декларативного программирования 11
1.1. Основные парадигмы программирования 11
1.1.1. Императивная парадигма 11
1.1.2. Декларативная парадигма 12
1.1.2.1. Функциональное программирование 13
1.1.2.2. Логическое программирование 16
1.1.2.3. Функционально-логическое программирование 20
1.2.Методы описания синтаксиса и семантики
языков программирования 23
1.2.1. Описание синтаксиса языков программирования... 23
1.2.1.1. Форма Бэкуса-Наура 25
1.2.1.2. Синтаксические диаграммы 26
1.2.1.3. Синтаксический анализ 27
1.2.2. Методы описания семантики языков программирования 27
1.2.2.1. Статическая семантика 28
1.2.2.2. Динамическая семантика 29
1.3.Интегрированные среды разработки программ 31
1.3.1. Средства текстового построения программ 32
1.3.2, Графическое программирование 33
1.4.Основные формы реализации языков программирования 33
1.4.1. Компиляция 33
1.4.2. Интерпретация 35
1.4.3. Смешанная форма 36
1.5.Выбор программных средств для реализации СФЛП 37
Основные результаты и выводы 38
2. Язык функционально-логического программирования S-FLOGOL 39
2.1.Теория направленных отношений (НО) 39
2.1.1. Основные понятия 39
2.1.2. Языки схем направленных отношений 40
2.1.2.1. Принципы построения 41
2.1.2.2. Комбинаторные константы 42
2.1.2.3. Операции композиции НО 43
2.1.3. Сетевое представления схем направленных отношений 44
2.1.3.1. Основные определения 44
2.1.3.2. Графическая нотация 45
2.1.3.3. Элементарные сети и композиции сетей 45
2.1.3.4. Сетевая грамматика и сетевой язык 47
2.2.Язык функционально-логического программирования FLOGOL 48
2.2.1. Принципы построения 48
2.2.2. Основные элементы и особенности языка FLOGOL 48
2.2.2.1. Модульная структура 48
2.2.2.2. Способы описаний направленных отношений 50
2.3.Входной язык системы функционально-логического программирования S-FLOGOL (Small FLOGOL) 55
2.3.1. Общая характеристика и система ограничений 55
2.3.2. Формальное семантики языка S-FLOGOL 57
2.3.2.1. Основные принципы описания семантики 57
2.3.2.2. Семантика выражений 58
2.3.2.3. Семантика синтаксических конструкций языка 61
2.3.2.4. Семантика многомодульных запросов 71
Основные результаты и выводы 73
3. Компилятор запросов программ на языке S-FLOGOL 74
3.1.Цель, задачи и стадии компиляции 74
3.1.1. Предварительная стадия компиляции 74
3.1.2. Основная стадия компиляции 76
3.1.3. Заключительная стадия компиляции 76
3.2.Принципы формирования ЛПК 77
3.2.1. Метод конструктивного построения КССГ 78
3.2.2. Управляющие правила компиляции 80
3.3.Методы формирования сетевых определений НО 81
3.3.1. Язык описания сетевого представления SimpIeNet 81
3.3.2. Конструктивное построение сетей 83
3.3.3. Формирование определений для вызова НО 85
3.4. Правила компиляции основных конструкций языка S-FLOGOL 87
3.4.1. Вычисление имени отношения 87
3.4.2. Компиляция выражений 89
3.5.Компиляция многомодульных запросов 101
3.6.Оптимизационные модификации методов компиляции запроса 102
3.6.1. Оптимизация компиляции многомодульных запросов 102
3.6.2. Оптимизация получения спецификатора 103
3.7.Особенности реализации компилятора запросов СФЛП 105
3.7.1. Технологический процесс компиляции в СФЛП 105
3.7.2. Индикация хода выполнения компиляции запроса 106
3.7.3. Компиляция системных отношений 107
3.7.4. Редукция имен скомпилированных отношений 108
Основные результаты и выводы 108
4. Структурно-ориентированный редактор СФЛП 110
4.1 .Технология дедуктивного построения программ (ТДГТП) 110
4.2.0сновные задачи ТДПП 112
4.3.Теоретические основы и базовые операции ТДПП 113
4.3.1. Основные определения 113
4.3.2. Синтаксическая корректность программ 115
4.3.3. Структурное представление программы 116
4.3.4. Основные технологические операции ТДПП 118
4.4.Специализированные технологические операции ТДПП 120
4.4.1. Операции работы с опциональными символами 120
4.4.2. Операции работы со списками 124
4.4.3. Операции построения выражений 126
4.4.4. Ручной ввод 129
4.4.5. Использование дерева объектов 130
4.4.6. Работа с буферами обмена 131
4.5.Отображение текста программы 132
4.5.1. Стилистическое оформление 132
4.5.2. Автоматическое структурирование текста программы 133
4.5.3. Изменение детализации отображения программы 135
4.6.Структурно-ориентированный редактор 136
4.6.1. Принципы построения и архитектура редактора 137
4.6.2. Интерфейс редактора 138
4.6.3. Инструменты общего назначения 139
4.6.4. Расширенный режим работы курсора 140
4.6.5. Специализированные инструменты 140
4.6.6. Построение программы при помощи клавиатуры 141
4.6.7. Компиляция запросов 142
Основные результаты и выводы 132
Заключение. Основные результаты работы 145
Список сокращений 146
Список литературы


