Пролог — это язык программирования универсального назначения. Он
используется для создания прикладных систем различных типов, таких,
например как экспертные системы, реляционные СУБД, системы обработки
естественных языков, интерпретаторы и компиляторы. В некотором смысле
он отличается от других языков с которыми возможно знаком пользователь,
таких как C, FORTRAN, COBOL и BASIC.
Структура программы на Прологе отличается от структуры программы,
написанной на процедурном языке. Пролог-программа является собранием
правил и фактов. Решение задачи достигается интерпретаций этих правил и
фактов. При этом пользователю не требуется обеспечивать детальную
последовательность инструкций, чтобы указать каким образом
осуществляется управление ходом вычислений на пути к результату. Вместо
этого он только определяет возможные решения задачи и обеспечивает
программу фактами и правилами, которые позволяет ей отыскать требуемое
решение.

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

Пролог (Prolog) — язык логического программирования, основанный на
логике дизъюнктов Хорна, представляющей собой подмножество логики
предикатов первого порядка. Начало истории языка относится к 70-м годам
XX века. Будучи декларативным языком программирования, Пролог
воспринимает в качестве программы некоторое описание задачи, и сам
производит поиск решения, пользуясь механизмом бэктрекинга и
унификацией.

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

К системам искусственного интеллекта относятся экспертные системы,
программы доказательства теорем, интеллектуальные роботы, системы
машинного перевода и др. Все эти задачи, делающие использование Пролога
естественным, имеют свои особенности реализации.

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

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


  • общение с ЭВМ на естественном языке;

  • символьные вычисления;

  • написание компиляторов;

  • базы данных;

  • экспертные системы и т.д.

Пролог относится к так называемым декларативным языкам, требующим от
автора умения составить формальное описание ситуации. Поэтому программа
на Прологе не является таковой в традиционном понимании, так как не
содержит управляющих конструкций типа if … then, while … do; нет даже
оператора присваивания. В Прологе задействованы другие механизмы.
Задача описывается в терминах фактов и правил, а поиск решения Пролог
берет на себя посредством встроенного механизма логического вывода.

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

Пролог реализован практически для всех известных операционных систем
и платформ. В число операционных систем входят OS для мэйнфреймов, всё
семейство Unix, Windows, OS для мобильных платформ.

Многие современные реализации языка имеют внутреннее расширение за
счет ООП-архитектуры. Кроме проприетарных решений также существуют
свободные реализации Пролог.

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

Основные вехи развития языка 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, которые приняли более прагматический подход,
воспользовавшись плодотворным объединением нового, декларативного
подхода с традиционным, процедурным.

  • Edinburgh Prolog

  • ISO Prolog

  • ISO Prolog

  • Strawberry Prolog




  • Конструктор сайтов - uCoz
    Copyright MyCorp © 2024