- •1. Назначение и структура языка prolog
- •Основные вехи развития языка Prolog
- •Наиболее заметные тенденции в истории развития языка Prolog
- •Элементы синтаксиса:
- •2. Основные конструкции языка prolog Примеры:
- •Факториал:
- •Числа Фибоначчи:
- •Числа Фибоначчи:
- •Квадратное уравнение:
- •Факториал:
- •Факториал:
- •Числа Фибоначчи:
- •Квадратное уравнение:
- •Квадратное уравнение:
Основные вехи развития языка Prolog
Prolog стал воплощением идеи использования логики в качестве языка программирования, которая зародилась в начале 1970-х годов, и само его название является сокращением от слов “programming in logic” (программирование в терминах логики). Первыми исследователями, которые занялись разработкой этой идеи, были Роберт Ковальски (Robert Kowalski) из Эдинбурга (теоретические основы), Маартен ван Эмден (Maarten van Emden) из Эдинбурга (экспериментальная демонстрационная система) и Ален Колмероэ (Alain Colmerauer) из Марселя (реализация). Популяризации языка Prolog во многом способствовала эффективная реализация этого языка в середине 1970-х годов Дэвидом Д. Г. Уорреном (David D.H. Warren) из Эдинбурга. К числу новейших достижений в этой области относятся средства программирования на основе логики ограничений (Constraint Logic Programming — CLP), которые обычно реализуются в составе системы Prolog. Средства CLP показали себя на практике как исключительно гибкий инструмент для решения задач составления расписаний и планирования материально-технического снабжения. А в 1996 году был опубликован официальный стандарт ISO языка Prolog.
Наиболее заметные тенденции в истории развития языка Prolog
В развитии языка Prolog наблюдаются очень интересные тенденции. Этот язык быстро приобрел популярность в Европе как инструмент практического программирования. В Японии вокруг языка Prolog были сосредоточены все разработки компьютеров пятого поколения. С другой стороны, в США этот язык в целом был принят с небольшим опозданием в связи с некоторыми историческими причинами. Одна из них состояла в том, что Соединенные Штаты вначале познакомились с языком Microplanner, который также был близок к идее логического программирования, но неэффективно реализован.
Определенная доля низкой популярности Prolog в этой стране объясняется также реакцией на существовавшую вначале “ортодоксальную школу” логического программирования, представители которой настаивали на использовании чистой логики и требовали, чтобы логический подход не был “запятнан” практическими средствами, не относящимися к логике. В прошлом это привело к широкому распространению неверных взглядов на язык Prolog. Например, некоторые считали, что на этом языке можно программировать только рассуждения с выводом от целей к фактам. Но истина заключается в том, что Prolog — универсальный язык программирования и на нем может быть реализован любой алгоритм. Далекая от реальности позиция “ортодоксальной школы” была преодолена практиками языка Prolog, которые приняли более прагматический подход, воспользовавшись плодотворным объединением нового, декларативного подхода с традиционным, процедурным.
Элементы синтаксиса:
Комментарий до конца строки |
% |
Регистрозависимость |
да |
Регулярное выражение идентификатора переменной |
[_A-Z][_a-zA-Z0-9]* |
Регулярное выражение идентификатора функции |
[_a-z][_a-zA-Z0-9]* |
Присваивание значения переменной |
is |
Объявление переменной |
= или :- |
Группировка выражений |
( ... ) |
Тождественное равенство |
== |
Тождественное неравенство |
\== |
Сравнение |
@< @=< @> @>= |
Вызов функции |
f(a,b,...) |
Вызов функции без параметров |
f |
Последовательность |
, |
Если - то - иначе |
( A -> B ; C) |
Цикл с постусловием |
repeat, ..., condition |
