Слайд 2История Пролога
Алан Робинсон и Роберт Ковальский
(метод резолюций)
начало 70-х - Алан Колмероэ Пролог
![История Пролога Алан Робинсон и Роберт Ковальский (метод резолюций) начало 70-х -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-1.jpg)
(ПРОграммирование ЛОГическое)
1977 г Дэвид Уоррен и Ф. Перейро (Эдинбургского университет) - первый интерпретатор/компилятор для ЭВМ DEC-10
в 1980 г. К. Кларк и Ф. Маккейб - версия Пролога для ПЭВМ.
1981 г. японский проект создания ЭВМ пятого поколения, за основу выбрано логическое программирование.
Слайд 3Наиболее известные реализации Пролога
CProlog
Silogic Knowledge Workbench
Arity Prolog
Prolog-86 (Prolog Development
![Наиболее известные реализации Пролога CProlog Silogic Knowledge Workbench Arity Prolog Prolog-86 (Prolog](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-2.jpg)
Center - PDC) с Borland International в 1986 г.
Turbo Prolog 2.0 ,..3.31 (с 1988)
Visual Prolog (PDC) с 1996 г.
Слайд 4Логическая программа
программа = множество аксиом;
вычисление = конструктивный вывод целевого утверждения из
![Логическая программа программа = множество аксиом; вычисление = конструктивный вывод целевого утверждения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-3.jpg)
программы.
Программа содержит: Факты
правила
вопросы
Слайд 5Факты
Факты, отражающие свойства
human(oleg).
fruit(orange).
red(rose).
Факты, отражающие отношения
likes(bill, cindy).
meet(lena, maria).
![Факты Факты, отражающие свойства human(oleg). fruit(orange). red(rose). Факты, отражающие отношения likes(bill, cindy). meet(lena, maria).](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-4.jpg)
Слайд 6Правила
правило – это заключение, для которого известно, что оно истинно, если одно
![Правила правило – это заключение, для которого известно, что оно истинно, если](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-5.jpg)
или несколько других найденных заключений или фактов являются истинными.
Like(Марина, яблоки).
Like(Оксана, Something):-Like(Марина, Something).
Символ :- соответствует "if"
Слайд 7Вопросы или цели
Вопросы (цели) бывают простые и составные.
Среди простых вопросов можно также
![Вопросы или цели Вопросы (цели) бывают простые и составные. Среди простых вопросов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-6.jpg)
выделить конкретные – те, которые требуют ответа в форме “ДА”, “НЕТ”
like(Марина, яблоки).
экзистенциональные вопросы, которые могут иметь несколько ответов
meet(Person, maria).
can_buy(Who,What).
Составные вопросы- представляют собой цель, состоящую из двух и более частей. Каждая часть сложной цели называется подцелью.
like(Person, ice-cream), like(Person,cinema ).
коньюнкцией (логическое “И”- “,”) или дизъюнкцией (логическое “ИЛИ”- “;”) нескольких подцелей.
Слайд 8Пример пролог-программы
predicates
likes(symbol,symbol)
fruit(symbol)
clauses
fruit(apple).
fruit(orang).
likes(marine, apple).
likes(marine, orang).
likes(marine, Something):- likes(marine,Something),fruit(Something).
goal
likes(oksana, Fruit).
![Пример пролог-программы predicates likes(symbol,symbol) fruit(symbol) clauses fruit(apple). fruit(orang). likes(marine, apple). likes(marine, orang).](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-7.jpg)
Слайд 9Основные разделы Пролог-программы
DOMAINS
Объявление доменов
PREDICATES
Объявление предикатов
CLAUSES
Предложения (факты и правила)
GOAL
Подцель_1, Подцель_2, и т.д.
![Основные разделы Пролог-программы DOMAINS Объявление доменов PREDICATES Объявление предикатов CLAUSES Предложения (факты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-8.jpg)
Слайд 10DOMAINS
чтобы задавать доменам (типам) осмысленные имена
создавать собственные домены для описания структур данных.
Игорь
![DOMAINS чтобы задавать доменам (типам) осмысленные имена создавать собственные домены для описания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/874734/slide-9.jpg)
– мужчина, которому 20 лет.
domains
name, gender= symbol
age= integer
predicates
Person(Name, gender, age)