Пролог

Рост мощностей вычислительных комплексов выдвинул в ряд основных

языки сверх высокого уровня. Задачей таких языков является сведение процесса программирования к указанию того, что именно необходимо получить, не говоря о том, как это сделать. В этом смысле Алгол, Си, P*scal - это языки только высокого, а не сверх высокого уровня. К языкам

сверхвысокого уровня относят язык Пролог.

Он (Prolog) создан во Франции в Марсельском университете в *971 году

Аленом Кольмеро (*o*merauer). Разрабатывая новый язык программирования для задач анализа и понимания естественных языков, А.Кольмеро решил использовать язык формальной логики предикатов первого порядка и метод автоматического доказательства теорем. Поэтому, в дальнейшем его стали расшифровывать как «ПРОграммирование в терминах ЛОГики» (PRO*OG -

PROg*amming LO*i**).

Язык Пролог основан на концепциях логического программирования,

предложенных профессором Лондонского университета Робертом Ковальским, и представляет собой среду, ориентированную на рассуждения, или дедукцию. Этот язык, базируясь на логическом программировании, является его первым применением. При логическом программировании осуществляется обработка символьной информации (решение проблем), в ходе которой процесс доказательства теорем интерпретируется как процесс вычисления или процесс

выполнения программы.

До начала 80-х годов Пролог был уделом ученых, работавших в основном

в области логического программирования, и мало знаком широкому кругу программистов и пользователей компьютеров. Начиная с 80-х годов, Пролог уже не сходит со страниц научных журналов по вычислительной технике и публикаций в области искусственного интеллекта. В 1981 году Япония известила мир о создании вычислительных машин пятого поколения, в которых

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

Однако растущую популярность Пролога нельзя объяснить только

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

 

хорошо определенной и логически обоснованной семантикой. Он не только

изменяет стиль программирования задач (в смысле Фон Неймана), но и

укоренившуюся архитектуру вычислительных машин.

Программа на языке Пролог содержит две составные части: факты и

правила. Факты представляют собой данные, с которыми оперирует программа. Совокупность фактов составляет базу данных Пролога, которая является реляционной базой. Основная операция, выполняемая над данными, - это операция сопоставления, называемая также операцией унификации, или согласия. Правила состоят из заголовка и подцелей. Выполнение программы, написанной на Прологе, начинается с запроса и состоит в доказательстве истинности некоторого логического утверждения в рамках заданной совокупности фактов и правил. Алгоритм этого доказательства (логического вывода) и определяет принципы исполнения программы, написанной на

Прологе.

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

(Бейсик, Паскаль и др.), предписывающих последовательность шагов, которые должен выполнять компьютер для решения задач, в Прологе программист описывает факты, правила, отношения между ними, а также запросы по

проблеме.

Первый интерпретатор Пролога, написанный на Фортране, разработан

А.Кольмеро и Ф.Русселем в *973 году. Затем появился компилятор Пролога, созданный Д.Уорреном и Ф.Перейра из Эдинбургского университета для машины DEC-*0. Впоследствии наибольшую популярность получили версии

Пролога, реализованные на персональных компьютерах.

Первая аппаратная реализация языка относится к 19*4 году, когда

Д.Уорреном был разработан конвейерный процессор языка Пролог-S*I.

Затем, в рамках реализации японского проекта машин пятого поколения,

в 1*8* году появился действующий макет машины PSI (Pe*s*nal Sequential Inf*rence Mashine - персональная ЭВМ последовательного вывода), а в 1986

году опытный образец машины CHI - параллельная быстродействующая

машина вывода.

Впервые в нашей стране язык Пролог был реализован в конце 70-х годов

сотрудниками Института кибернетики им. В.М.Глушкова АН УССР и Рижского

политехнического института для ЕС ЭВМ.

Пролог нашел многочисленные и разнообразные применения в

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

языках, машинной индукции, отладке.

Но самое характерное применение Пролога - это экспертные системы. Он

вносит своеобразный вклад в их создание, особенно для механизма логического вывода. Этот язык можно использовать для применения любой модели, его можно рассматривать и как воплощение модели представления знаний, и как

язык          представления           знаний.         Определение,           данное         Р.Ковальским:

Алгоритм=Логика+Управление, подтверждает это утверждение и помогает прояснить термин «управление» в экспертных системах. В этом определении

Логика показывает, что является проблемой (областью), а Управление - как

эффективно использовать логику для решения проблем.

Пролог сыграл одну из главных ролей в развитии информатики, и в

частности, он помогает структурировать мышление.

 

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

программирования, так называемыми эвристическими языками, в основе которых лежат работы алгоритмической неразрешимости определенных процессов. В поисках наиболее универсального языка, который бы годился для машинного перевода, боливийский математик Иван Гусман де Рохас выяснил, что наиболее подходящим является не какой-либо искусственный, специально созданный для ЭВМ язык, а язык индейцев Перу в Боливии - аймара. Еще первый составитель словаря этого языка священник-иезуит из Италии в 1610 году отмечал, что язык аймара удивительно логичен, в нем почти нет исключений из его довольно простых грамматических правил, в частности, в нем не существует неправильных глаголов. Гусман де Рохас, работа которого высоко оценена многими специалистами, создал программу, при помощи которой простой в синтаксическом отношении язык аймара выражен сравнительно небольшим рядом математических символов. Самое парадоксальное заключается в том, что язык народа, который почти поголовно неграмотен, может быть через несколько лет принят к использованию в самых

современных компьютерах, существующих в мире.