Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Глава 4. Программы турбо пролога

Синтаксис Турбо Пролога разработан так, чтобы максимально ясно отоб-

ражать знания о свойствах и взаимосвязях. В основном, вы уже видели, как

это делается: в главе 3 изучили предложения (факты и правила), предикаты,

переменные и цели.

В отличии от других версий Пролога, Турбо Пролог - компилятор, конт-

ролирующий типы: для каждого предиката вы объявляете типы, которые он мо-

жет использовать. Это объявление типов позволяет программам работать зна-

чительно быстрее, чем это было бы возможно в случае контроля центральным

процессором типов всех объектов в процессе обработки этих объектов.

В первой части данной главы мы обсудим четыре основные секции прог-

рамм на Турбо Прологе - те, где вы объявляете и описываете предикаты и

аргументы, задаете правила и определяете цель программы. Во второй части

этой главы мы более подробно рассмотрим синтаксис правил и деклараций. И,

наконец, в заключении мы кратко опишем другие разделы программ Турбо Про-

лога (баз данных, констант, различные глобальные разделы) и директивы

компилятора.

Основные секции программы на Турбо Прологе

Обычно, программа на Турбо Прологе состоит из трех или четырех ос-

новных программных секций. К ним относятся: секция "clauses" (предложе-

ний), секция "predicates" (предикатов), секция "domains" (доменов) и,

иногда, секция "goal" (используемая при создании автономных исполняемых

программ).

# Секция clauses - это сердце программы на Турбо Прологе; именно в

эту секцию вы записываете факты и правила, которыми будет опериро-

вать Турбо Пролог, пытаясь разрешить цель программы.

# Секция predicates - это та, в которой вы объявляете свои предикаты

и домены (типы) их аргументов. (Вам не нужно декларировать предика-

ты, встроенные в Турбо Пролог.)

# Секция domains служит для объявления всех используемых вами доме-

нов, не являющихся стандартными доменами Турбо Пролога. (Вам не нуж-

но объявлять стандартные домены.)

# Секция goal - это та, в которую вы помещаете встроенную (внутрен-

нюю) цель в случае, если вы хотите, чтобы ваша программа могла за-

пускаться независимо от среды разработки Турбо Пролога.

Секция предложений

В секцию clauses (предложений) вы помещаете все факты и правила,

составляющие вашу программу. Основное внимание в Главе 3 было сосредото-

чено вокруг предложений (фактов и правил) вашей программы: что они озна-

чают, как их писать и т.д.

Если вы поняли, что собой представляют факты и правила и как их за-

писывать в Прологе, то вы знаете, что должно быть в секции clauses. Все

предложения одного данного предиката в секции clauses должны располагать-

ся вместе; последовательность предложений, описывающих один предикат, на-

зывается процедурой.

Пытаясь разрешить цель, Турбо Пролог (начиная с первого предложения

секции clauses) будет просматривать каждый факт и правило, стремясь найти

сопоставление. По мере продвижения Турбо Пролога вниз по секции clauses,

он устанавливает внутренний указатель на каждое предложение, следующее по

отношению к сопоставимому с текущей подцелью. Если текущее предложение не

является частью логического пути, ведущего к решению, то Турбо Пролог

возвращается к установленному указателю и ищет следующее сопоставление

(этот процесс называется "поиск с возвратом", о котором мы упомянули в

Главе 3).

Соседние файлы в папке Документация