Шпоры по Прологу - файл n1.doc

приобрести
Шпоры по Прологу
скачать (83 kb.)
Доступные файлы (1):
n1.doc83kb.29.05.2012 21:11скачать

n1.doc

  1   2   3
1. Язык логического программирования Пролог. Концепция логического программирования. Язык Пролог является представителем семейства языков логического программирования. Пролог не является языком программирования в чистом виде. Его можно считать и оболочкой экспертной системы, и реализацией интеллектуальной базы данных. Фактически Пролог является не процедурным, а декларативным языком. В качестве типовых данных Пролог использует элементарные единицы данных, так называемые атомы строки символов и числа. Сама "программа" строится из последовательности фактов и правил, и затем формулируется утверждение, которое Пролог будет пытаться доказать с помощью введенных правил. Таким способом можно описывать очень сложные проблемы, которые будут решаться самим Прологом автоматически. Человек лишь описывает структуру задачи, а внутренний "мотор" сам ищет решение. Отличие от других языков: Программа на прологе не является алгоритмом. Пролог предназначен не для решения вычислительных или графических задач, а для решения логических задач. Пролог требует особого стиля мышления программиста. Программирование на прологе состоит из следующих этапов: Объявления некоторых фактов об объектах и отношениях между ними, Определение некоторых правил об объектах и отношениях между ними и Формулировки вопросов об объектах и отношениях между ними.

2. Основы программирования на Турбо-Прологе: структура программы, основные типы данных, работа с секцией domains. Программа на Турбо Прологе состоит из следующих семи разделов: директивы компилятора;CONSTANTS - раздел описания констант;DOMAINS - раздел описания доменов; DATABASE - раздел описания предикатов внутренней базы данных;PREDICATES - раздел описания предикатов; CLAUSES - раздел описания предложений(факты и правила); GOAL - раздел описания внутренней цели. GLOBAL DOMAINS, GLOBAL PREDICATES, GLOBAL – используется в модульном программировании и означает, что ниже следующее объявление относится к нескольким программам.

Основные стандартные домены - это: integer - целое число от -32768 до 32767; real - действительное число от +1Е-307 до +1Е308; char - символ, заключенный в одиночные апострофы; string - последовательность символов, заключенная в двойные кавычки; symbol - символическая константа (начинающаяся со строчной буквы последовательность букв латинского алфавита, цифр и знаков подчеркивания или последовательность любых символов, заключенная в кавычки). Этот домен соответствует понятию атома; file - файл. file=<имя файлового домена1>;...;<имя файлового доменаN>. 1 формат: name=t (например, age, number=integer); 2 формат: mylist=elevent*(например, namlist=integer*); 3 формат: region=functor1(d1,d2,…);functor2(d3,d4,…);…(пример: 1.object=int(integer); str(string) 2.mesto=sprava; sleva). functor1, functor2 – это имена альтернатив составной области. d1,d2, d3,d4 – один из типов пролога, который является стандартным, либо определены в разделе domains.

3. Основы программирования на Турбо-Прологе: структура программы, внутренние и внешние цели. Указывается вопрос (цель), на который должен ответить Пролог. 1) Цель может быть внутренней и внешней (Отличия в том, что при использовании внешней пролог ищет все решения, а внутренней только первое). 2) Отправная точка логического вывода. 3) На любой запрос пролог будет пытаться дать ответ «yes» или «no», если решений нет, то ("No solution"). Запросы (цели ) 2 типа: 1 тип: Подтвердить справедливость факта или совокупность фактов. На запросы такого типа система выдает ответ «да» или «нет». 2 тип: В записях таких вопросов используют переменные – последовательности символов русского или латинского алфавитов, начинающихся с прописной буквы или символа «_». В качестве ответов выводятся значения переменных, удовлетворяющих информации в БЗ. Переменные: Обязательно начинается с прописной буквы

Крайне желательно использовать осмысленные имена переменных. Анонимная переменная: Анонимной переменной называют знак подчёркивания «_»; Она используется когда конкретное значение переменной несущественно.

4. Основы программирования на Турбо-Прологе: структура программы, предикаты, факты, правила. Предикат – конструкция вида: <имя>(<аргументы>) аргументы обозначают какие-то объекты или свойства объектов, а имя предиката – связь или отношение между аргументами. Общий вид описание предиката: name(d1,d2,…). Факт – это утверждение о том, что соблюдается некоторое отношение. Факт записывается в виде предиката, аргументы которого являются константами (символьными или числовыми). БД на Прологе – совокупность фактов. БЗ состоит из совокупности фактов и правил. Правило – предложение, носящее более общей характер, чем частный факт. Правило определяет новый предикат через предикаты, определенные ранее. <голова правила>:-<тело правила>. Тело правила выполняет роль условия (посылки) истинности головы правила: если истинно тело правила, то справедлива голова правила. <тело правила> - список ранее определённых фактов разделённых логической связкой И, ИЛИ, НЕ и т.д. Знак «:-» читается как «ЕСЛИ». Знак «,» читается как «И». Знак «;» читается как «ИЛИ».

5. Основы программирования на Турбо-Прологе: методы и средства управления поиском решения.Управление поиском с возвратом заключается в решении двух задач: включении поиска с возвратом при его отсутствии, и отключении поиска с возвратом при его наличии. Предикат fail, включает поиск с возвратом. Предикат ! (его называют «отсечение»), предотвращает поиск с возвратом. Действует предикат fail очень просто – цель с использованием данного предиката НИКОГДА не доказывается, а, следовательно, всегда включается поиск с возвратом. Используется для поиска всех ответов если в программе присутствует внутренняя цель. Еще одно средство для управления поиском с возвратом – это стандартный предикат ! (отсечение). Действие этого предиката прямо противоположно действию предиката fail. Если предикат fail всегда включает поиск с возвратом, то отсечение поиск с возвратом прекращает. Вид правила повтора, определяемого программистом: repeat. % повторить; repeat :- repeat. Когда при выполнении программы в одном из ее правил встретится подцель с предикатом repeat и выполнение следующих подцелей будет успешным, произойдет возвращение к подцели repeat для поиска других возможных решений, а ее обращение к правилу repeat создаст условия для отката и повторного выполнения следующих подцелей.

Для задания режима трассировки в начало программы вводится директива компилятору trace. CALL: (имя выполняемого предиката и значения его аргументов); RETURN: (возвращаемый предикат со звездочкой впереди) - когда предикат или правило удовлетворяются; FAIL: (предикат) - когда предикат не удовлетворяется (не FILE); REDO - показывает, что производится поиск с возвратом.
  1   2   3


Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации