- 1 курс
- 2 курс
- 3 курс
- 4 курс
- 5 курс
- 6 курс
Old
Old
This is an old revision of the document!
Получение необходимых навыков для разработки и отладки простейшей программы на языке Visual Prolog.
Пролог (англ. Prolog) – язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Prolog является декларативным языком программирования: логика программы выражается в терминах отношений, представленных в виде фактов и правил. Для того чтобы инициировать вычисления, выполняется специальный запрос к базе знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщённых запросов с переменными в качестве аргументов созданная система Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода.
Иначе говоря, предикат можно определить как функцию, отображающую множество произвольной природы в множество булевых значений {ложно, истинно}. Задача пролог-программы заключается в том, чтобы доказать, является ли заданное целевое утверждение следствием из имеющихся фактов и правил.
Язык программирования, реализованный в Visual (а ранее в Turbo) Prolog'е отличается от классического пролога тем, что он основан на строгой статической типизации. В него также добавлены средства объектно-ориентированного программирования, анонимные предикаты (лямбда-предикаты), факты-переменные и разрушающее присваивание для них, аргументы-домены (Generic Interfaces and Classes
) и параметрический полиморфизм, мониторы (Monitors with guards
), императивные конструкции (foreach
, if...then...else
), коллекторы списков ([...||...]
) и пр.
Разработать программу на языке Visual Prolog, описывающие родственные связи между собаками, а также реализовать генеалогическое древо Вашей семьи.
domains name=string predicates dog(name) parent(name, name) clauses dog(X) :- parent(X,Y), dog(Y). dog("Rex"). parent("Jack","Rex"). goal dog(Who).
parent(symbol,symbol)
, man(symbol)
, woman(symbol)
, married(symbol,symbol)
, записать факты, описывающие Вашу семью.