Разработка и исследование структурно-ориентированного редактора и компилятора запросов системы функционально-логического программирования

Разработка и исследование структурно-ориентированного редактора и компилятора запросов системы функционально-логического программирования

Автор: Бебчик, Алексей Михайлович

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2005

Место защиты: Москва

Количество страниц: 189 с. ил.

Артикул: 2747481

Автор: Бебчик, Алексей Михайлович

Стоимость: 250 руб.

Оглавление
1. ЯЗЫКИ И СИСТЕМЫ ДЕКЛАРАТИВНОГО ПРОГРАММИРОВАНИЯ 1.1.Основные парадигмы программирования
1.1.1. Ихмперативная парадигма
1.1.2. Декларативная парадигма
1.1.2.1. Функциональное программирование
1.1.2.2. Логическое программирование
1.1.2.3. Функциональнологическое программирование
1.2.Методы описания синтаксиса и семантики
языков программирования.
1.2.1. Описание синтаксиса языков программирования
1.2.1.1. Форма БэкусаНаура.
1.2.1.2. Синтаксические диаграммы.
1.2.1.3. Синтаксический анализ
1.2.2. Методы описания семантики языков программирования
1.2.2.1. Статическая семантика
1.2.2.2. Динамическая семантика.
1.3.Интегрированные среды разработки программ
1.3.1. Средства текстового построения программ
1.3.2. Графическое программирование.
1 АОсновные формы реализации языков программирования.
1.4.1. Компиляция.
1.4.2. Интерпретация
1.4.3. Смешанная форма
1.5.Выбор программных средств для реализации СФЛП
Основные результаты и выводы.
2. ЯЗЫК ФУНКЦИОНАЛЬНОЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ
БРХЮОЬ.
2.1.Теория направленных отношений НО.
2.1.1. Основные понятия
2.1.2. Языки схем направленных отношений.
2.1.2.1. Принципы построения.
2.1.2.2. Комбинаторные константы.
2.1.2.3. Операции композиции НО
2.1.3. Сетевое представления схем направленных отношений.
2.1.3.1. Основные определения
2.1.3.2. Графическая нотация.
2.1.3.3. Элементарные сети и композиции сетей
2.1.3.4. Сетевая грамматика и сетевой язык.
2.2.Язык функциональнологического программирования
2.2.1. Принципы построения.
2.2.2. Основные элементы и особенности языка
2.2.2.1. Модульная структура.
.2.2. Способы описаний направленных отношений.
2.3.Входной язык системы функциональнологического программирования
2.3.1. Общая характеристика и система ограничений
2.3.2. Формальное семантики языка .
2.3.2.1. Основные принципы описания семантики
2.3.2.2. Семантика выражений.
2.3.2.3. Семантика синтаксических конструкций языка
2.3.2.4. Семантика многомодульных запросов.
Основные результаты и выводы
3. КОМПИЛЯТОР ЗАПРОСОВ ПРОГРАММ НА ЯЗЫКЕ
3.1.Цель, задачи и стадии компиляции
3.1.1. Предварительная стадия компиляции.
3.1.2. Основная стадия компиляции
3.1.3. Заключительная стадия компиляции
3.2.Принципы формирования ЛПК
3.2.1. Метод конструктивного построения КССГ
3.2.2. Управляющие правила компиляции.
3.3.Методы формирования сетевых определений НО.
3.3.1. Язык описания сетевого представления iI.
3.3.2. Конструктивное построение сетей
3.3.3. Формирование определений для вызова НО.
3.4.Правила компиляции основных конструкций языка
3.4.1. Вычисление имени отношения.
3.4.2. Компиляция выражений.
3.5.Компиляция многомодульных запросов
З.б.Оптимизационные модификации методов компиляции запроса
3.6.1. Оптимизация компиляции многомодульных запросов
3.6.2. Оптимизация получения спецификатора.
3.7.Особенности реализации компилятора запросов СФЛП
3.7.1. Технологический процесс компиляции в СФЛП.
3.7.2. Индикация хода выполнения компиляции запроса
3.7.3. Компиляция системных отношений
3.7.4. Редукция имен скомпилированных отношений
Основные результаты и выводы
4. СТРУКТУРНООРИЕНТИРОВАННЫЙ РЕДАКТОР СФЛП
4.1.Технология дедуктивного построения программ ТДПП
4.2.0сновные задачи ТДПП
4.3.Теоретические основы и базовые операции ТДПП
4.3.1. Основные определения
4.3.2. Синтаксическая корректность программ
4.3.3. Структурное представление программы.
4.3.4. Основные технологические операции ТДПП
4.4.Специализированные технологические операции ТДПП
4.4.1. Операции работы с опциональными символами
4.4.2. Операции работы со списками
4.4.3. Операции построения выражений
4.4.4. Ручной ввод
4.4.5. Использование дерева объектов
4.4.6. Работа с буферами обмена.
4.5.Отображение текста программы.
4.5.1. Стилистическое оформление
4.5.2. Автоматическое структурирование текста программы.
4.5.3. Изменение детализации отображения программы
4.6.Структурноориентированный редактор
4.6.1. Принципы построения и архитектура редактора
4.6.2. Интерфейс редактора
4.6.3. Инструменты общего назначения
4.6.4. Расширенный режим работы курсора.
4.6.5. Специализированные инструменты.
4.6.6. Построение программы при помощи клавиатуры.
4.6.7. Компиляция запросов
Основные результаты и выводы.
ЗАКЛЮЧЕНИЕ. ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ.
СПИСОК СОКРАЩЕНИЙ
СПИСОК ЛИТЕРАТУРЫ


Одним из высокоуровневых средств языков функционального программирования является возможность определения функций высших порядков функциональных форм, принимающих в качестве параметра имя или определение другой функции. Однако на практике можно ограничиться использованием лишь небольшого числа таких форм, покрывающих потребности в применении функций высших порядков. Весьма показательным в этом смысле является язык ,,, в котором жестко закреплен ограниченный набор функциональных форм константа, условное выражение, композиция, конструкция, применитьковсем и вставка и не предоставляется возможности определения собственных пользовательских форм. Рпрограммы имеют крайне компактный вид, хотя, в некоторых случаях, и существенно более сложны для понимания, чем эквивалентные программы на аппликативных языках. Поэтому важным направлением развития языков функционального программирования является естественное сочетание аппликативного и композиционного стилей, позволяющее выбирать наилучшую форму для описания конкретных семантических объектов. Современное развитие функционального программирования в основном направлено на повышение его применимости в промышленных приложениях. Такая постановка задачи приводит развитию систем типизации, вводавывода, видоизменению синтаксиса, введению модульной системы. Помимо перечисленных позитивных направлений развития, иногда, в угоду практическим потребностям, в функциональные языки i, также вносятся и императивные элементы, такие как разрушающее присваивание, циклы и т. Язык I и многие его диалекты являются нетипизированными языками, или, более точно, языками с динамической типизацией, позволяющей определять несоответствие типов во время исполнения программы при помощи встроенных, либо определенных пользователем типовых функцией. Динамическая типизация является удобным средством обработки разнородных данных, но в то же время, она не позволяет выполнять обнаружение ошибок несовместимости типов на стадии компиляции. Поэтому большинство современных языков, предназначенных для промышленного использования, имеют статическую типизацию, позволяющую выявить большое число ошибок на стадии компиляции и тем самым существенно повысить надежность программного обеспечения, а также снизить трудозатраты на его разработку. Наиболее широкое распространение получила системе типов Милнера , позволяющая задавать алгебраические типы данных и автоматически выводить тип данных в случае, если он не был задан пользователем явно. Как отмечалось выше, модульность во многом определяет промышленную применимость языка. Большинство функциональных языков поддерживают средства включения импорта определенных во внешних модулях объектов в область видимости текущего модуля. Импорт объектов из других модулей и ограничение возможности экспорта определенных в данном модуле объектов, как правило, реализуется при помощи так называемых списков импорта и экспорта объектов. Обращение к импортируемым объектам выполняется с использованием традиционной точечной нотации с указанием имени подключенного модуля в качестве квалификатора, причем для удобства квалификации именам подключенных модулей могут присваиваться псевдонимы. Для типизированных языков допускается также импортирование описаний типов данных, заданных пользователем. Эффективность практического применения языка программирования также во многом определяется его синтаксисом. Синтаксис языка I является крайне простым, однако читаемость программ бывает существенно осложнена большим числом скобок и отсутствием естественной структурированности текста программ, что создает известные трудности при разработке больших проектов с высокой степенью повторного использования кода. Поэтому современные функциональные языки, такие как и , имеют достаточно сложный Паскальподобный синтаксис, повидимому, наиболее удобный для промышленного программирования. Логическое программирование. Другим подходом к декларативному программированию, получившим название логического программирования ,,, является использование аппарата математической логики для описания и вычисления программ. Программа в логическом программировании представляет собой формальную модель предметной области, заданную при помощи языка логики предикатов.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.256, запросов: 244