- •1. Парадигмы императивного и декларативного программирования.
- •2. Основные задачи для функционального и логического программирования.
- •3. Основные понятия систем ии.
- •4. Понятие функционального программирования и основные положения по а.П. Ершову.
- •5. Понятие функциональности.
- •14. Префиксная нотация Лиспа, вычисление арифметических выражений.
- •15. Понятие псевдофункции.
- •16. Псевдофункция статического связывания объекта.
- •10. Свойства функционального программирования в постановке а. П. Ершова.
- •11. Структура символьного выражения в Лиспе.
- •12. Символы, атомы, константы, t, nil, списки.
- •13. Список как основная структура функционального и логического программирования.
- •21. Основные примитивы Лиспа для обработки списка.
- •22. Графическое представление списка.
- •23. Принципы работы с памятью функциональной и логической программы
- •24. Автоматические сборщики мусора
- •25. Старт-стопные сборщики мусора и сборщики мусора реального времени
- •Ключевой параметр optional, key, res.
- •33. Карринговая форма записи функций нескольких переменных.
- •48. Функция принадлежности аргумента списка, декларативное определение
- •56. Генератор в программировании, понятие вычислительного контекста
- •57. Связь дисциплины логического программирования с дисциплиной "базы данных"
- •65. Резолюция, правило резолюции как процедура вывода решений
- •66. Сопоставление в логическом программировании
- •81. Оператор присваивания в прологе
- •82. Детерминированные и недетерминированные предикаты
- •83. Отсечение, операционная модель Пролога в случае применения отсечения.
- •88. Рекурсивное логическое программирование
- •105. Металогические предикаты
- •106. Металогические предикаты для анализа структуры термы
- •107. Металогические предикаты для определения типа переменных
105. Металогические предикаты
Металогические конструкции позволяют повысить выразительность программирования в любой среде. Основное назначение таких предикатов – анализ структуры доказательства. Метапредикаты в языке PROLOG служат для реализации (как минимум) пяти целей:
Определение "типа" выражения.
Добавление ограничений "типа" в логические приложения.
Построение, разделение и оценка структур PROLOG.
Сравнение значений выражений.
Преобразование предикатов, передаваемых в виде данных, в исполняемый код.
106. Металогические предикаты для анализа структуры термы
Предикат, который извлекает аргумент из терм, функторов, которые переводят терм в список.
Поскольку данный вид предикатов выходят за рамки логики первого порядка, их применение весьма ограничено в реализациях Пролога со строгой типизацией данных. Основное назначение таких предикатов –анализ структуры доказательства.
107. Металогические предикаты для определения типа переменных
Основным типовым металогическим предикатом является предикат var (Term), проверяющий, представляем ли собой терм Term переменную с неопределенным значением.
var(Term) выполняется успешно, если в данный момент Term не подтверждается (который,
следовательно, ни с чем не связан кроме возможно другой не базовой переменной).
nonvar(Term) выполняется успешно, если Term подтверждается в данный момент (в отличие от
var/1).
Отношение plus (X,Y,Z), которое может быть использовано как для сложения, так и для вычитания. Идея состоит в проверке, какие установлены аргументы, до обращения к арифметическому вычислителю.
plus (X, Y, Z): - nonvar (X), nonvar (Z), Y := Z - Y.
