Пролог — это язык программирования универсального назначения. Он используется для создания прикладных систем различных типов, таких, например как экспертные системы, реляционные СУБД, системы обработки естественных языков, интерпретаторы и компиляторы. В некотором смысле он отличается от других языков с которыми возможно знаком пользователь, таких как 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, которые приняли более прагматический подход, воспользовавшись плодотворным объединением нового, декларативного подхода с традиционным, процедурным. Дата создания: 1972 Парадигма: императивная, функциональная Типизация: бестиповая Диалекты: Edinburgh Prolog ISO Prolog Strawberry Prolog Реализации и версии (свернуть все | развернуть все): Arity Prolog Arity/Prolog32 B-Prolog BinProlog Brain Aid Prolog Ciao Prolog CxProlog EZY Prolog GNU Prolog IF/Prolog JIProlog K-Prolog MINERVA Open Prolog PDC/Turbo Prolog Qu-Prolog SICStus Prolog SWI Prolog Trinc-Prolog Visual Prolog YAP
|