Министерство образования Российской Федерации

Марийский государственный технический университет

Вопросы

по дисциплине “Функциональное и логическое программирование”

ПРОЛОГ

Синтаксис Пролога. Константы. Переменные. Структуры. Операторы - тоже функторы. Арифметика. Операции сравнения. Сопоставление. Второе значение операции = в Прологе. Примеры сопоставления структур Процедурная семантика. Формальное описание процедуры вычисления целей. Соотношение между процедурным и декларативным смыслом. Пример программы: родственные отношения. Факты. Вопросы. Переменные. Конъюнкция целей. Правила. Конъюнкция в правилах. Переменные в теле правила. Структура пролог программы. Пролог как система, реализующая логический вывод в исчислении предикатов первого порядка. Общий обзор языка Пролог. Списки. Представление списка диаграммой. Выделение головы и хвоста списка. Шаблоны списков. Определения отношений через cons форму списка. Процедуры обработки списков. Длина списка Встроенные предикаты. Простые встроенные предикаты ввода-вывода. Процедурный смысл встроенных предикатов ввода-вывода. Ввод-вывод списков. Ввод-вывод списка как терма. Поэлементный ввод-вывод списка. Отсечение. Графическая иллюстрация действия cut. Пример действия cut. Применение cut при выборе альтернатив. Формальное описание действия отсечения. Применение отсечения. Добавление элемента без дублирования. Классификация. Отсечение в численной рекурсии. Замечания при использовании отсечения. Сортировка списков. Метод наивной сортировки. Недетерминированное программирование. Раскрашивание плоской карты. Сортировка списков. Метод пузырька Сортировка списков. Метод вставки. Сортировка списков. Быстрая сортировка quick. Отрицание как неудача (not as failure). Алгоритм поиска на Прологе. Чтение и запись информации с файлов. Обработка входных потоков. Обработка выходных потоков. Обработка символов. Три предиката ARITY-prologa. Встроенные предикаты repeat. Проверка типа терма. Метапредикаты. (Встроенные предикаты обработки термов.) Создание и декомпозиция термов. Т=..L, functor, arg. Предикаты работы с базой данных. Операции (операторы) в Прологе. Объявление операций. Пролог. Поиск в лабиринте.