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

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
Программное обеспечение любой сложности
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 - переменная

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

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

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

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>