[Закрыть]
 
popoff.donetsk.ua
Человек, который сознает происходящее, знает, что он чувствует, где находится и который сейчас час. Он знает, что после его смерти деревья будут расти, как и прежде, но он их уже не увидит; поэтому он хочет видеть их сейчас со всей остротой, на которую способен. /Эрик Берн/
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Клуппы Yato - ДонНТУ - Функциональное и логическое программирование - Логическое программирование - Общие сведения о языке Пролог
Я это делаю
Персональное меню
Голосование
Клуппы Yato Постоянный адрес этого вопроса
Деньги, но неинтересная работа и невозможность уделить время семье
Интересная работа, возможность саморазвиваться, но нищенский заработок
Ваш возраст (не обязательно)
Почему? (не обязательно)

Голосование закрыто.

Поиск по сайту
Реклама
Программное обеспечение любой сложности
koins.com.ua
Статистика

Общие сведения о языке Пролог

Постоянный адрес статьи

Содержание

Введение

Начинаем рассматривать логическое программирование в узком смысле слова:

  • хорновское
  • прологовское
Пролог (Prolog) - это программирование на языке логики.

Этот язык используется для задач, которые сводятся к объектам и отношениям между ними.

Пролог является реляционным языком.

Пользоваиель должен установить какие формальные отношения и объекты существуют в решаемой задаче и установить какие отношения справедливы для поиска решения.

Пролог - это декларативный язык. Он отличается от процедурных (императивных) языков:

  • императивный - как делать
  • декларативный - что делать

Порядок выполнения Пролог программы определяется:

  • семантикой языка
  • новыми фактами, которые Пролог выводит из имеющихся
  • отчасти той управляющей информацией, которую задает программист

Пролог - это логический язык, в котором реализована логика предикатов 1-го порядка.

В самом языке предусмотрены элементы интеллектуальности:

  • сопоставление с образцом
  • поиск с возвратом
  • недетерменизм

Ретроспектива создания Пролога и его версий

  • 1971 г. в Марсельском университете А. Колмероэ создает язык, который работал с естественными текстами (реализация интерпретатора на ФОРТРАНЕ П. Русселя).

  • В Имперском колледже Р. Ковальский математически обосновал логическое программирование и язык Пролог.

  • "Эддинбургская" реализация Д. Уоррена для DEC-10, уже компилятор.

  • В Венгрии Домелки создает "МПролог" (модульный Пролог).

  • IC-пролог (МикроПролог) Кларка и Маккейб для микроЭВМ.

  • Параллельный Пролог Шапиро

  • Книга К. Хогера является "библией" логического программирования, как книга Д. Кнута "Искусство программирования для ЭВМ" на фон-неймоновских машинах.

  • LogLisp Робинсона - это слияния логических и функциональных языков.

  • Язык проекта ЭВМ 5-го поколения.Протопип внутренних языков (KL-1, KL-2) машин логического вывода и их макроассемблеров ESP и MANDALA.

Модель вычислений

  • Система реализующая логический вывод в исчислении предикатов 1-го порядка
  • Хорнова модель вычислений: доказательство некоторых формул исчисления как вычисление
  • "Выражение Хорна" (дизъюнкты,клаузы) + принцип резолюции (как логический вывод)

    1. A(t1,t2...tn) - факт

      A - формула

      t1,t2...tn - термы

    2. ~A1V~A2V...~AnVAm

      (тут используют только имена формул, скобки и термы опущены)

    3. Правило преобразования дизъюнкции в конъюнкции:

      A1&A2&...&An-->Am

      "Из A1 и ... An следует Am"

  • В качестве механизма логического вывода используется метод резолюции с формулами: A1VA2...VAn

    Это регулярная процедура последовательного сопоставления с образцом (алгоритм унификации)

    A1&A2&...&An-->Am

    A1,A2,...,An - подцели

    Am - цель

    Доказательство правила выполняется от подцели к цели.

Этапы программирования на Прологе

  • объявление фактов об объектах и отношениях
  • определение правил
  • формировки вопросов

Пример 1:
Факты Объекты Отношение
"Иван - отец Алексея" "Иван","Алексей" отец
"Серебро - ценное" серебро ценное
"Петр дает книгу Ольге" "Петр",книга,"Ольга" дает

Обычно в качестве отношений в естественных языках выступают сказуемые или определения (прилагательное). Во фразе на русском сказуемое может отсутствовать, чаще всего отсутствует глагол "есть", "является".

Отношение:
отец("Иван","Алексей").
ценное(серебро).
дает("Петр","Ольга",книга).

? - отец("Иван",Y).
Y - переменная

Смотрите так же

Клуппы Yato
 
ДонНТУ
 
Функциональное и логическое программирование
 
Логическое программирование
 
Общие сведения о языке Пролог
Основные элементы языка Пролог
Арифметика в языке Пролог

Последняя модификация: 22.08.05 23:06