- •Основные Элементы ТурбоПролога.
- •Структуры Пролога, разделы программы
- •Способы объявления предикатов в программе Пролог
- •Объявление предикатов
- •Утверждения и правила. Факты и правила.
- •Раздел goal
- •Этапы программирвоания на тп
- •Декларативный и процедурный смысл программы
- •Сопоставление
- •Арифметика в тп
- •Арифметические функции в тп
- •Рекурсия
- •Рекурсия и эффективность
- •Стандартные предикаты
- •Стандартные предикаты ввода-вывода
- •Отсечение
- •Отрицание (not)
- •Использование составных объектов
- •Списки. Описание. Голова и хвост списка.
- •Стандартные предикаты для работы со строками Определение длины строки
- •Конкатенация строк
- •Разделение строки на две части
- •Описание файловых доменов
- •Запись в файл
- •Чтение из файла
- •Дозапись в конец существующего файла
- •Создание меню с помощью окон Определение окна
- •Быстрое переключение между двумя окнами
- •Очистка текущего окна
- •Удаление текущего окна
- •Создание динамических баз данных. Статические и динамические базы данных
- •Способы занесения информации в динамическую базу данных
- •Предикаты для работы с базами данных
Этапы программирвоания на тп
Описание типов данных (domains). Для стандартных типов описание необязательно.
Описанеи предикатов (predicates)
Объявление некоторых фактов об объектах и отношениях между ними (clauses).
Объявление некоторых првид об объектах и отношениях между ними (clauses).
Формулировка вопросов об объектах и отношениях между ними (goal или окно диалога).
Декларативный и процедурный смысл программы
Различают два уровня смысла.
Декларативный (описательный) касается только отношений, определяемых программой. Декларативный смысл определяет, что должно быть результатом работы программы. Процедурный смысл определяет как результат получается.
Р:-А, В
Декларативный смысл этого предположения: Р истина, если А и В истинны. Процедурный смысл: чтобы решить Р, сначала надо решить А , а потом В. Способность Пролог-системы прорабатывать многте процедурные детали самостоятельно считается одним из специфических преимуществ Пролога. Этот факт имеет практическое значение , так как декларативные аспектыпрограммы обычно являются более легкими для понимания чем процедурные детали.
Сопоставление
Наиболее важной операцией над термами являетяс соспоставление. Два терма сопоставимы если:
они идентичны;
переменные в обоих термах можно переписать в качестве значений объекта (то есть конкретизируют их).
Таким образом, чтобы после подстановки этих объектов в терм вместо переменных 2 терма стали идентичны. Например термы дата (Д, М, 1999) и дата (Д1, май, Х) сопоставимы. С другой стороны дата (Д, М, 1999) и дата (Д1, М1, 1945) не сопоставимы.
Общие правила сопоставимости двух термов таковы:
Если С и Т константы, то С и Т сопоставимы только если они являются одними и теми же объектами.
Есил С – переменная, Т – произволный объект, то они сопоставимы и С приписывается значение Т.
Если С и Т структуры, то они сопоставимы, если: С и Т имеют одинаковый главный функтор; все их составляющие компоненты сопоставимы.
Схема согласования целевых утверждений
Для ответа на вопрос, поступивший от пользователя ТП начинает решение задачи. Вопрос содержит 1 или несколько целевых утверждений (подцелей), которые необходимо попытаться доказать с помощью известных утверждений (фактов и правил). Факт может привести к немедленному согласованию целевого утверждения, когда ЦУ и факт сопоставимы. Правило может свести данную цель к одному или нескольким предикатам-подцелям, составляющим првую част правил. Есил Цу ен доказано, возбуждаетяс процесс возврата и делаетс япопытка передоказать ЦУ путем поиска альтернативных путей доказательства. При возврате конкретизированны переменные становятся свободными, а при новом доказательстве получают другие конкретизации. Процесс возврата повторяется до тех пор, пока не будут использованы все новые пути доказательства.
Арифметика в тп
ТП обладает теми же арифметическими возможностми, что и другие языки программирования. ТП выполняет 4 основных арифметических операции +, -, *, / над целыми и вещественными числами. Кроме того: div – целочисленное деление, mod – остаток целочисленного деления. Соотношение типов операндов и результатов опреации приведены в таблице :
Операнд 1 |
Оператор |
Операнд 2 |
Рзультат |
integer |
+ - * |
integer |
integer |
integer |
+ - * / |
real |
real |
real |
+ - * / |
integer |
real |
real |
+ - * / |
real |
real |
integer |
/ |
integer |
real |
В арифметических выражениях (АВ) могу присутствовать операнды (константы и переменные), операторы арифметических операций, скобки, 16-чные числа с идентифицирующим символом $.
Логические операторы.
>, >=, <, <=, =, <>, ><
При сравнении строк ТП преобразует их в соответствующие символы строке коды ASCII и сравнивает их как числа.