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

Часть 2. Изучение турбо пролога 2.0 глава 3. Основы пролога

Данная глава является первой из 15 глав, последовательно обучающих

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

раммирование; затем обсуждаем некоторые основные концепции Пролога, вклю-

чая предложения, предикаты, переменные, цели и сопоставления.

ПрОграммирование в лоГике

В Прологе вы достигаете своего решения логическим выводом его из ра-

нее известных положений. Обычно, программа на Прологе не является после-

довательностью действий - она представляет собой набор фактов с правила-

ми, обеспечивающими получение заключений на основе этих фактов. Из-за

декларативности Пролога он достигает того, что работа компьютера кажется

более интеллектуальной, чем при работе обычных (процедурных) языков.

Пролог базируется на предложениях Хорна, являющихся подмножеством

формальной системы, называемой логикой предикатов. Только пусть это наз-

вание не пугает вас. Логика предикатов - это простейший способ объяснить,

как "работает" мышление. И она значительно проще, чем арифметика, которой

вы давно пользуетесь.

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

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

языку, а кроме того сами компьютеры не так быстры, велики (по памяти) и

дешевы, как нам бы хотелось. Если бы, к примеру, Пролог непосредственно

принимал английские утверждения, то компилятор должен был бы знать все

возможные способы построения фраз в английском языке. Во многих случаях

это потребовало бы во много раз больше времени для трансляции программы в

нечто понятное компьютеру, чем времени, требуемого для работы самой прог-

раммы. Компьютерное оборудование, требуемое для работы такой системы,

преобрело бы несуразные размеры.

Пролог включает механизм вывода, представляющий собой процесс логи-

ческого объяснения информации. Механизм вывода включает сопоставление об-

разцов. С помощью подбора ответов на запросы он извлекает хранящуюся (из-

вестную) информацию. Пролог пытается проверить истинность гипотезы (дру-

гими словами - ответить на вопрос), запрашивая для этого информацию, о

которой уже известно, что она истинна. Пролог'овское знание о мире - это

ограниченный набор фактов (и правил), заданных в программе.

Одной из важнейших особенностей Пролога является то, что (в дополне-

ние к логическому поиску ответов на поставленные вами вопросы) он может

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

Вместо обычной работы от начала программы до ее конца, Пролог может возв-

ращаться назад и просматривать более одной "дороги", при решении всех

составляющих задачу частей.

Логика предикатов разработана для наиболее простого преобразования

базирующегося на логике мыслей в записываемую форму. Пролог использует

преимущества ее синтаксиса для разработки программного языка, основанного

на логике. В логике предикатов вы прежде всего исключаете из своих пред-

ложений все несущественные слова. Затем вы преобразуете эти предложения,

ставя в них на первое место связь, а после нее - сгруппированные объекты.

Затем объекты становятся аргументами, между которыми устанавливается эта

связь. В качестве примера ниже представлены предложения, преобразованные

в соответствии с синтаксисом логики предикатов:

-----------------------------------------------------------------

Предложения на Синтаксис логики

естественном языке предикатов

-----------------------------------------------------------------

A fast car is fun. fun(fast_car). Крепкая машина смешна.

A big car is nise. nise(big_car). Большая машина приятна.

Bill likes a car if likes(bill,car)if Билу нравится машина,

the car is fun fun(car). если она смешная.

-----------------------------------------------------------------

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