Такой декларативный подход и в самом деле часто делает программирование на Прологе более легким, чем на таких типичных процедурно-ориентированных языках, как Паскаль. К сожалению, однако, декларативного подхода не всегда оказывается, достаточно. Далее станет ясно, что, особенно в больших программах, программист не может полностью игнорировать процедурные аспекты по соображениям эффективности вычислений. Тем не менее следует поощрять декларативный стиль мышления при написании пролог-программ, а процедурные аспекты игнорировать в тех пределах, которые устанавливаются практическими ограничениями.
Резюме
Программирование на Прологе состоит в определении отношений и в постановке вопросов, касающихся этих отношений.
Программа состоит из предложений. Предложения
бывают трех типов:
Отношение может определяться
Процесс, в результате которого пролог-система
устанавливает, удовлетворяет ли объект запросу,
часто довольно сложен и включает в себя
логический вывод, исследование различных
вариантов и, возможно,
Различают два типа смысла пролог-программ: декларативный и процедурный. Декларативный подход предпочтительнее с точки зрения программирования. Тем не менее, программист должен часто учитывать также и процедурные детали.
В данной главе были введены следующие понятия:
предложение, факт, правило, вопрос
голова предложения, тело предложения
рекурсивное правило
рекурсивное определение
процедура
атом, переменная
конкретизация переменной
цель
цель достижима, цель успешна
цель недостижима,
цель имеет неуспех, цель терпит неудачу
возврат
декларативный смысл, процедурный смысл.
Литература
Различные реализации Пролога используют разные синтаксические соглашения. В данной книге мы применяем так называемый Эдинбургский синтаксис (его называют также синтаксисом DEC-10, поскольку он принят в известной реализации Пролога для машины DEC-10; см. Pereira и др. 1978), он используется во многих популярных пролог-системах, таких как Quintus Prolog, Poplog, CProlog, Arity/ Prolog, Prolog-2 и т.д.
Bowen D. L. (1981).
Mellish С. and Hardy S. (1984).
Pereira F. (1982).
Pereira L. M., Pereira F., Warren D. H. D. (1978).
Назад | Содержание | Вперёд
Назад | Содержание | Вперёд
Глава 2
СИНТАКСИС И СЕМАНТИКА ПРОЛОГ ПРОГРАММ
В данной главе дается систематическое изложение синтаксиса и семантики основных понятий Пролога, а также вводятся структурные объекты данных. Рассматриваются следующие темы:
простые объекты данных (атомы, числа, переменные)
структурные объекты
сопоставление как основная операция над объектами
декларативная (или непроцедурная) семантика программ
взаимосвязь между декларативным и процедурным смыслами программ
изменение процедурного смысла путем изменения порядка следования предложений и целей
Большая часть этих тем уже была затронута в гл. 1. Теперь их изложение будет более формальным и детализированным.
2. 1. Объекты данных
На рис. 2.1 приведена классификация объектов данных Пролога. Пролог-система распознает тип объекта по его синтаксической форме в тексте программы. Это возможно благодаря тому, что синтаксис Пролога
Рис. 2. 1. Обьекты данных Пролога.