Реферат: Prolog. Реализация на ПЭВМ
![](/file/7d5aacc146456be8f3642.jpg)
🛑 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
1. Интегрировання Среда языка Turbo Prolog.
1. Интегрированная среда языка Turbo Prolog.
Функционирование Т.Р. требует наличие следующих стандартных каталогов:
корневой Prolog, в котором должны находится следующие файлы:
prolog.r тексты сообщения об ошибках
prolog.obj вспомагательный файл для создания пользов-их exe файлов
подкаталог PRO для пользовательских исходных файлов (расширение .pro)
подкаталог OBJ для пользовательских обьктных и prg файлов
подкаталог EXE для хранения пользовательских exe файлов
подкаталог DOS для команд ОС в том случае, если предполагается их использование из пользовательских программ. (min command.com)
2 Структура программы на TURBO PROLOG
1 Для определения типов доменов или данных, используемых в программе
2 описание прототипов пользовательских предикатов
3 “утверждения” включает описание фактов в виде предикатов и правил, т.е. декларативных и процедурных знаний
4 содержит цель решения задач, при его отсутствии система запрашивает цель решения задачи в окне диалога и в этом-же окне получаем ответ, при его присутствии в нем помещаем пользовательский интерфейс.
(integer) : (0) - читает целое число, чтение заканчивается нажатием
(char) : (0) - читает единичный символ
readln (<строка>) (string) : (0) - читает строку символов
inkey (<знак>) (char) : (0) - заканчивается истиной, если после предыдущей операции была нажата клавиша, возвращается её код. Если не была нажата, то предикат оканчивается неудачей
nl - код двух клавиш - переход на новую строку
(переменные и константы) : (i, i, ...) - выдает на текущее устройство записи констант и содержание переменных
(string, <переменные и константы>) : (i, i, ...)
“ % - m.pw “, где % - признак форматного вывода
если задан “-”, то знаки должны выравниваться по левому краю, если не задан - по правому
w - тип числа, вместо w записывается f, если выводится число в десятичном виде, e - в экспотенциальной форме, q - в самом коротком формате.
Предикаты работы с символьными данными.
если задано (i, i), проверяется длина строки, если (i, 0) - возвращается длина строки
Все предикатные преобразования действуют в обе стороны. Случай (i, i) проверяет истинность для всех типов, кроме real. Преобразование между типами string, symbol и real, integer пр-ся (?) автоматически.
(сhar, integer) : (i, 0) (0, i) (i, i)
str_char (<знак как строка>, <знак>)
(string, сhar) : (i, 0) (0, i) (i, i)
Работа с командами операционной системы
Необходимым условием для работы с предикатами этой группы есть наличие подкаталога DOS, в котором бы был записан минимум command.com
(string) : (i) - передает команду OS
(integer, integer, integer) : (i, i, i) (0, 0, 0) - устанавливает, если (i, i, i), или возвращает, если (0, 0, 0) системную дату
dir (<маршрут>, <спецификатор файла>, <имя файла>)
(string, string, string) : (i, i, 0) - выдаются на экран специфицированные файлы из каталога по маршруту. Возможно выбрать из каталога имя одного файла с помощью стрелок управления курсором, при нажатии имя этого файла присваивается третьему аргументу предиката
Специальные предикаты языка Turbo Prolog
bouncl (<переменная>) - “истина, если переменная является конкретизированной
free (<переменная>) - “истина, если переменная не является конкретизированной
fail - всегда ложн. вызывает возврат для проверки базы в правилах
! - (cat) - предикат отсечения, ограничивает возврат
exit - останавливает выполнение пользовательской программы и передает управление меню Turbo Prolog
trace - общее включение режима отладки. Указывается в начале исходной программы
(symbol) : (i) (0) - устанавливает, если i, или возвращает, если 0, текущий режим отладки. В качестве статуса можно использовать on/off. Использование этого предиката предполагает наличие trace в начале программы
diagnostics - позволяет выдать анализ программы в процессе компиляции. Анализ включает имена используемых предикатов. Для каждого имени определяется, являются ли аргументы конкретного предиката фактами или указывается конкретность предиката.
nowarnings - отключает предупреждения в процессе компиляции
project “имя файла” - данная программа является частью проекта
include “имя файла” - в компиляцию включается файл с указанным именем
Управление ходом выполнения программ на языке ТР.
В механизм обработки программ на языке ТР заложена рекурсия, то есть вычисление значения функции с помощью той же функции, но с измененными параметрами. Рекурсия в ТР реализуется в 2 этапа:
1) исходная задача разбивается на более мелкие частные задачи и формируются частные решения и на основе которых затем будет получено общее решение задачи.
Процесс разбиения задачи на подзадачи наз-ся редукцией. Редукция завершается в том случае, если сформирована подзадача, которая может быть решена непосредственно.
2) сборка решения, начиная от самого (?) последнего к самому общему. Для использования рекурсии в программах необходимо использовать следующий формат правила рекурсии:
<имя правила рекурсии с аргументами или без них> if
<предикат условия выхода из рекурсии> (2)
<имя правила рекурсии с аргументами или без них > (4)
В структуре правила компоненты (1), (3), (5) могут присутствовать или отсутствовать с учетом специфики решаемой задачи. Компоненты (2), (4) обязательны, так как они организуют аппарат активизации правила рекурсии. Обычно компонента (1) - это предикаты, которые не влияют на рекурсию. Компонента (3) содержит предикаты, с помощью которых формируются новые значения аргументов, участвующих в рекурсии, а (5) включает предикаты, которые формируют с помощью аппарата рекурсии искомые значения. (5) - сборка решения. (2) - используется для останова рекурсии, а (4) - реализует повторный вызов рекурсивного правила для новых значений аргумента. В зависимости от заданных граничных условий различают нисходящую и восходящую рекурсию.
Определение n-го терма последовательности 1, 1, 2, 6, 24, ...
Для обозначения того факта, что n-й член последовательности равен V, вводится предикат следующего вида: posl (N, V)
Решение задачи производится в 2 этапа:
1. Производится попытка удовлетворить запрос пользователя, используя первое утверждение в разделе clauses (posl (3,x) сопоставляется с posl (0, 1)). Так как 0 не сопоставляется с 3, то попытка завершается неудачей. После этого posl (3, x) сопоставляется с заголовком 2-го утверждения posl (N, V). Отсюда N получает значение 3, а V связывается с х и система переходит к доказательству подцели в теле правила:
2) M 1
=N 1
-3 согласуется при N 1
=3 и M 1
=2
3) posl (2, U 1
) приводит ко второму рекурсивному обращению и так как это обращение не согласовано с первым, то последнее утверждение (V=U*N) откладывается.
2. Согласование posl (2, U 1
) с posl (0, 1) приводит к неудаче. Происходит сопоставление с заголовком 2-го утверждения, что заканчивается удачей, при этом N 2
=2 и V=U 1
. происходит доказательство по цели этого утверждения:
3) posl (1, U 2
) приводит к повторному рекурсивному обращению
3. Согласование posl (1, U 2
) с posl (0, 1) приводит к неудаче. Сопоставление с заголовком 2-го утверждения заканчивается неудачей, при N 3
=1 и V=U 2
. Происходит доказательство по цели этого утверждения:
3) posl (0, N 3
) приводит к повторному рекурсивному обращению.
Полученное целевое утверждение сопоставляется с первым целевым утверждением posl (0, 1), при этом U 3
получает заначение 1.
На этом этап разбиения заканчивается.
Производится попытка согласования самого последнего из отложенных целевых утверждений, если это удается, то производится согласование предпоследнего целевого утверждения, и так до самого первого из отложенных, то есть запроса.
1) U 2
=U 3
*1 , так как U 3
=1 то U 2
=1
В процессе реализации запроса интерпретатору языка необходимо анализировать множество фактов и правил, к-рые извлекаются в процессе нескольких просмотров соответственных баз фактов. При этом в процессе одного просмотра формируется частичное решение. Процесс в PROLOGе выполняется автоматически путем пометки или заполнения тех модулей, к-рые анализировались перед текущей целью, с тем, чтобы исключить полученное частное решение из дальнейнего рассмотрения. Этот механизм в PROLOGе наз-ся возвратом и реализуется через использование стандартного предиката fail, к-рый всегда имеет значение “ложь”. Этот предикат заставляет интерпретатор проанализировать ещё раз базу фактов, чтобы выполнить более целевое утверждение для других значений переменных. Он позволяет получить в базе все возможные решения.
Для управления процессом выполнения программ в PROLOG имеется встроенный предикей cut, кот. кодируется в turbo-PROLOG как !. Основное назначение — остановка процесса возврата, т.е. приостановка выработки дальнейших решений.
Этот процесс в Прологе наз. ОТСЕЧЕНИЕМ. Чаще всего предикей cut используется совместно с fail.
Отсечение используется для устранения бесконечных циклов (см. пред. пример):
Отсечение также используется для устр. взаимоисключающих утверждений.
Название: Prolog. Реализация на ПЭВМ
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 15:29:53 17 мая 2004 Похожие работы
Просмотров: 455
Комментариев: 16
Оценило: 4 человек
Средний балл: 5
Оценка: неизвестно Скачать
Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.
Реферат: Prolog. Реализация на ПЭВМ
Курсовая работа: Улаштування та експлуатації колії
Доклад по теме Cчастье и устойчивое развитие
Реферат: Латвія на щляху до ЄС
Сочинение Дом Моей Мечты На Английском Кратко
Характеристика Практики Врача
Курсовая работа по теме Право в системе нормативного регулирования общественных отношений
Реферат: Принципы организации финансов хозяйствующих субъектов
Доклад: At the gates
Реферат: Death Of A Salesman The American Dream
Почему Нужно Уметь Прощать Сочинение
Объект Курсового Проекта
Контрольная работа по теме Расчет волоконно–оптической линии связи
Сочинение Про Глагол
Сочинение Рассуждение На Тему Слова Красивый
Методическое указание по теме Основные идеи марксистской философии
Реферат: "Чешский вопрос": попытки разобраться в самих себе. Скачать бесплатно и без регистрации
Доклад: Урбаністична лірика М. Семенка (під кверо - до панфутуризму). Скачать бесплатно и без регистрации
Контрольная работа по теме Проектирование технологического процесса по производству крышки
Педагогическое Сопровождение Диссертации
Дипломная работа по теме Налоговый режим предпринимательской деятельности
Дипломная работа: Генотоксические эффекты у детей-подростков из Чебулинского района Кемеровской области
Сочинение: Рассказ «Тапер» у А. И. Куприна и у А. П. Чехова
Реферат: Риторическая модель русского разговорного языка