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

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

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

Год защиты: 2005

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

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

Артикул: 2771258

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

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

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

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

Оглавление
1. МЕТОДЫ РЕАЛИЗАЦИИ СИСТЕМ ДЕКЛАРАТИВНОГО
ПРОГРАММИРОВАНИЯ.
1.1 .Декларативная парадигма программирования
1.1.1. Функциональное программирование.
1.1.2. Логическое программирование.
1.1.3. Функциональнологическое программирование.
1.1.4. Формализм направленных отношений
1.2.Виды и модели вычисления декларативных программ
1.2.1. Функциональные программы
1.2.2. Логические программы
1.2.3. Функциональнологические программы
1.2.3.1. Спрямление.
1.2.3.2. Сужение
1.2.3.3. Логика.
1.2.3.4. Декларации режимов вычислений
1.3.Реализация моделей вычисления
1.3.1. БЕСОмашина.
1.3.2. Виртуальная машина Уоррена УАМ.
1.4.Вычисление направленных отношений
1.4.1. Вид программы.
1.4.2. Внутреннее представление
1.4.3. Модели вычислений.
1.4.4. Задачи редукции сетей.
1.4.5. Реализация вычисления.
1.5.Визуальное программирование
1.5.1. Логическое программирование на Акторном Прологе.
1.5.2. Функциональное программирование в ЕаЬУ1еу
1.5.3. Система программирования для языка СИПРОЛ
1.5.4. Программирование на основе СПНО
1.5.5. Вопросы автоматического построения изображения сетей
Основные результаты и выводы.
2. МОДЕЛИ И МЕТОДЫ ВЫЧИСЛЕНИЯ НАПРАВЛЕННЫХ
ОТНОШЕНИЙ
2.1.Основные понятия теории НО.
2.2. Алгебраическое определение НО.
2.3.Сетевое представление НО.
2.3.1. Размеченные сети.
2.3.2. Графическая нотация
2.3.3. Синтаксические операции над сетями.
2.3.4. Трансформационные операции над сетями
2.3.4.1. Подстановка
2.3.4.2. Редукция.
2.3.5. Операции композиции сетей
2.4.Базовая модель вычисления НО.
2.4.1. Цель и задачи вычисления НО
2.4.2. Сетевой язык.
2.4.3. Применение редукции сетей
2.4.4. Виды запросов
2.4.5. Стратегии вычислений.
2.4.5.1. Поиск в глубину
2.4.5.2. Поиск в ширину
2.4.5.3. Смешанные стратегии
2.5.Логический вывод.
2.5.1. Логика предикатов и НО.
2.5.2. Модификация базовой модели вычисления НО.
2.5.3. Мультиправила
2.5.4. Стратегии вывода
2.6.Вопросы оптимизации вычислений
2.6.1. Редукция по фронту
2.6.2. Кольцевая подстановка.
2.6.3. Подстановка с контекстом
2.6.4. Оптимизация последнего вызова.
2.6.5. Оптимизация порядка применения правил.
2.7.Абстрактная машина вычисления НО
2.7.1. Базовый набор вычислительных операций.
2.7.2. Алгоритм работы машины
Основные результаты и выводы
3. ПОДСИСТЕМА ИСПОЛНЕНИЯ ЗАПРОСОВ СФЛП.
3.1.Цели и задачи.
3.2.Внутреннее представление сетевых программ.
3.2.1. Представление сетевой грамматики
3.2.2. Представление сетей.
3.2.3. Разметка сетей
3.2.4. Графическое представление.
3.2.5. Формат хранения во внешней памяти.
3.3.Базовые механизмы вычисления
3.3.1. Подстановка.
3.3.2. Редукция
3.4,Оптимизация вычислений
3.4.1. Кольцевая подстановка.
3.4.2. Оптимизация последнего вызова.
3.4.3. Упорядочивание правил.
3.4.4. Анализ подстановочной разметки
3.4.5. Мультиправила.
3.4.6. Эффективность оптимизации.
3.5. У правление процессом вычисления.
3.5.1. Поиск в глубину.
3.5.2. Поиск в ширину
3.5.3. Маски вычислимости
3.6.Системные отношения и типы данных.
3.6.1. Натуральные числа, списки и строки
3.6.2. Функциональные системные отношения
3.7.Отладка программ и отображение результатов вычисления.
3.7.1. Дерево отладки
3.7.2. Статистика вычисления.
3.7.3. Отображение результатов вычисления.
3.8. Режимы вычисления.
3.8.1. Режим вычислений с разметкой.
3.8.2. Генерация языка по КССГ
3.8.3. Логический вывод.
3.8.4. Компиляция программ языка 8ГЬОООЬ.
3.9.Импорт программ на языке Пролог
3.9.1. Ограничения на импортируемые программы.
3.9.2. Системные предикаты и списки.
Основные результаты и выводы.
4. ГРАФИЧЕСКИЙ РЕДАКТОР СФЛП
4.1.Технология графического программирования.
4.1.1. Формирование грамматики
4.1.2. Построение правил грамматики
4.1.2.1. Операции формирования структуры тела правила
4.1.2.2. Вспомогательные структурные операции
4.1.2.3. Вспомогательные графические операции
4.2.Графический редактор
4.2.1. Основные требования к редактору.
4.2.2. Принципы построения.
4.2.3. Архитектура редактора.
4.2.4. Интерфейс пользователя
4.2.5. Основные подсистемы редактора.
4.3.Особенности реализации графического редактора
4.3.1. Формирование и прорисовка изображения.
4.3.2. Построение дуг между объектами сети.
4.4. Автоматическое формирование графического изображения сети
4.4.1. Этапы построения графического изображения сети
4.4.2. Учет геометрических размеров объектов сети
4.4.3. Минимизация объема вычислений методом оболочек
4.4.4. Формирование сил отталкивания.
4.4.5. Отслеживание колебательного движения объектов.
Основные результаты и выводы.
ЗАКЛЮЧЕНИЕ. ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ
СПИСОК СОКРАЩЕНИЙ.
СПИСОК ЛИТЕРАТУРЫ


Принципиально иным подходом к программированию является декларативное программирование, в основе которого лежит определение программы в виде формального описания задачи с последующим извлечением решения согласно вычислительной модели выбранного формализма. Основным достоинством декларативного подхода является то, что программист может сосредоточить внимание на формальном описании решаемой задачи, а не на методах ее решения, которые автоматически выбираются некоторым вычислителем. Еще одним преимуществом является возможность естественного распараллеливания процесса вычисления программ большинства декларативных языков, в то время как программы императивных языков, изначально рассчитанные на последовательное выполнение, крайне плохо поддаются распараллеливанию. Несмотря на очевидные преимущества декларативного подхода, он также имеет и недостатки, к которым можно отнести сравнительно невысокую эффективность выполнения программ и предъявление высоких требований к объему доступной оперативной памяти. Однако наметившийся в последнее время быстрый рост объема оперативной памяти вычислительных машин (ВМ) и интенсивное развитие направления параллельных вычислений позволяют по-новому взглянуть на указанные недостатки и снижают их значимость в свете проблем, возникающих при распараллеливании программ императивных языков. Функциональное программирование. В основе функционального программирования (ФП) лежит понятие математической функции, определяющей зависимость между исходными данными и результатом вычисления. Программа, записанная на функциональном языке, представляет собой совокупность описаний, в общем случае, частичных рекурсивно-определенных функций, одна из которых используется в качестве целевой функции вычисления. Важным преимуществом таких языков по сравнению с языками императивной парадигмы является отсутствие переменных с возможностью переопределения их значений («разрушающего» присваивания). Переменная в функциональном языке - это лишь обозначение некоторого, пока не известного, объекта. В силу того, что в основе функциональных языков, как правило, лежат строгие математические формализмы, семантика таких программ представляется достаточно ясной и хорошо поддается формальному анализу. Первым языком ФП считается язык Лисп, который был создан Маккарти в г. Так, в отличие от Лиспа, имеющего энергичную модель вычисления и динамическое связывание, язык LispK. CommonLisp поддерживает как динамическое, так и статическое связывание []. Отличительной чертой языка CommonLisp и некоторых других диалектов является возможность использования разрушающего присваивания, массивов, циклов и других элементов императивного программирования, повышающих гибкость программирования, но нарушающих чистоту языка. Другими направлениями развития языков ФП являются введение строгой статической типизации (языки Норе [], Haskell [], Miranda []) и техники сопоставления с образцом (Refal [], Норе), а также использование Pascal-подобного синтаксиса (Haskell, ML) и декларативных подсистем ввода-вывода (Haskell, ML). Кроме этого, практически все современные языки имеют развитые средства поддержки многомодульного программирования, что наряду с перечисленными выше возможностями позволяет рассматривать их как языки промышленного уровня. Логическое программирование. Еще одним видом декларативного подхода к программированию является логическое программирование (ЛП). В основе классического понимания ЛП лежит исчисление или логика предикатов первого порядка. Исчисление предикатов, предложенное Г. Фреге, оказалось весьма удобным формализмом для описания объектов и отношений между ними. Логическая программа, по сути, представляет собой описание некоторой предметной области в виде множества истинных утверждений (аксиом), называемое также базой знаний. Вычисление программы состоит в попытке доказательства выводимости утверждения, называемого запросом, из утверждений рассматриваемой базы знаний. При этом, как правило, выполняется построение объектов, указанных в запросе в качестве искомых.

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

28.06.2016

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

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

15.02.2015

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

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


Все новости

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