Презентация "Логическое программирование"


Подписи к слайдам:
Курс Технологии Грид

Логическое программирование

  • История развития языка
  • Пролог
  • Выполнил: Рыжков Сергей, студент 340 группы.
  • Руководитель Волосникова Л.В.
  • ГБПОУ «Шадринский политехнический колледж»

Язык Пролог

  • <number>
  • PROLOG ~ “PROgramming in LOgic” (“Программирование в терминах логики”) – самый популярный язык логического программирования.
  • Язык основан на теории исчисления предикатов первого порядка и методах доказательства теорем.
  • Основной метод вычислений – резолюция (“resolution”, процедура доказательства)
  • Поддерживает декларативный (описательный) стиль программирования – программы конструируются в терминах точного определения проблемной ситуации / формулировки задачи, без написания программы в виде последовательности инструкций по выполнению алгоритма («что истинно», а не «как решить задачу»)
  • Программа на Прологе определяет, является ли заданная цель истинной/достижимой, и если да – то при каких условиях / значениях переменных («что получить»). Процедурность Пролога выражается в определении порядка действий по достижению цели («как получить»).

История Пролога (основы)

  • <number>
  • 1965 , "A machine oriented logic based on the resolution principle", "Journal of the ACM №12", Дж. Робинсон представил метод автоматического поиска доказательства теорем в исчислении предикатов первого порядка - "принцип резолюции".
  • работа Роберта Ковальского "Логика предикатов как язык программирования", 1974: заложила теоретические основы.
  • В 1973 году "группа искусственного интеллекта" во главе с Аланом Кольмероэ создала в Марсельском университете программу, предназначенную для доказательства теорем.; программа использовалась при построении систем обработки текстов на естественном языке; получила название Prolog (от Programmation en Logique); прообраз Пролога (1я эксперим. реализация)

История Пролога (реализации)

  • <number>
  • Первая программа на Прологе была написана в начале 1970 годов во Франции, в рамках проекта по пониманию естественного языка.
  • Маартен ван Эмден из Эдинбурга (экспериментальная демонстрационная система); совместно в 1976 г. предложили два подхода к прочтению текстов логических программ: процедурный и декларативный.
  • В 1977 году в университете Эдинбурга, каф. ИИ, Дэвид Уоррен и Фернандо Парейра создали очень эффективный компилятор языка для ЭВМ DEC–10 ("эдинбургская версия") - прототип для многих последующих реализаций Пролога; был сам написан на Прологе.
  • В 1980 году Кларк и Маккейб в Великобритании разработали версию Пролога для персональных ЭВМ.
  • В 1981 году стартовал проект Института по разработке методов создания компьютеров нового (пятого) поколения.
  • в 1996 году был опубликован официальный стандарт ISO языка Prolog.

Достоинства Пролога

  • <number>
  • Часто используется для создания систем управления базами данных, где применяются очень сложные запросы, которые довольно легко записать на Прологе.
  • В Прологе очень компактно, по сравнению с императивными языками, описываются многие алгоритмы;
  • Пролог-программу, как правило, очень легко писать, понимать и отлаживать.
  • Прологу присущ ряд механизмов, которыми не обладают традиционные языки программирования: сопоставление с образцом, вывод с поиском и возвратом.
  • Для хранения данных в Прологе используются списки, а не массивы. В языке отсутствуют операторы присваивания и безусловного перехода, указатели. Естественным и зачастую единственным методом программирования является рекурсия.

Основные области применения Пролога

  • <number>
  • быстрая разработка прототипов прикладных, автогенерация кода;
  • верификация программ и разработка высокоуровневых ЯП;
  • системы автоматического программирования;
  • естественно-языковые интерфейсы для существующих систем;
  • символьные вычисления: решение уравнений, диффернц./интегрир.;
  • автоматическое доказательство теорем;
  • проектирование динамических реляционных БД и СУБД;
  • экспертные системы и оболочки экспертных систем;
  • автоматический перевод с одного языка на другой;
  • системы автоматизированного проектирования;
  • и многие другие области … (в т.ч. связанные с ИИ)

Источник:

  • Логическое программирование [Электронный ресурс] - https://ru.wikipedia.org/wiki/%CB%EE%E3%E8%F7%E5%F1%EA%EE%E5_%EF%F0%EE%E3%F0%E0%EC%EC%E8%F0%EE%E2%E0%ED%E8%E5