Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
07.08.2024
Размер:
2 Мб
Скачать
☆
  1. История развития и современное состояние языка prolog

    1. Тенденции в истории развития языка Prolog

Любой язык программирования всегда ориентирован на определенный круг задач, при решении которых он наиболее эффективен. Для языка Prolog типичными являются проекты, связанные с разработкой систем ис­кусственного интеллекта — это различные экспертные системы, системы планирования, программы-переводчики, интеллектуальные игры и т.п. Prolog обладает достаточно мощными средствами, позволяющими извле­кать информацию из баз данных и знаний. При этом его методы поиска принципиально отличаются от "традиционных". Кроме этого, Prolog часто используют в задачах, связанных с манипулированием на естественном языке.

Интерес к Prolog поднимался и затихал несколько раз, энтузиазм сме­нялся жёстким неприятием. Наиболее высокий интерес к языку Prolog, как к языку будущего, возник в 1980-х годах во время разработки японской национальной программы «компьютеры пятого поколения». В рамках это­го проекта разработчики надеялись, что с помощью Prolog можно будет сформулировать новые принципы, которые приведут к созданию компью­теров более высокого уровня интеллекта.

Эта надежда базировалось на том, что логическое программирование использует не последовательность абстракций и преобразований, которая отталкивается от машинной архитектуры фон Неймана и присущего ей набора операций, а на основе абстрактной модели, которая никак не связа­на с каким-либо типом машинной модели. Из этого подхода следовало, что не человека надо обучать мышлению в терминах операций компьютера, а компьютер должен выполнять инструкции, свойственные человеку. И на этом историческом этапе некоторые ученые и инженеры считали подоб­ный путь простым и эффективным.

Prolog - язык программирования, который основан не на алгоритме, а на логике предикатов. Если программа на алгоритмическом (процедурном) языке является последовательностью инструкций, выполняющихся в за­данном порядке, то Prolog, будучи декларативным языком, содержит толь­ко описание задачи, а Prolog-машина выполняет поиск решения, руковод­ствуясь только этим описанием и используя механизм поиска с возвратом и унификацию.

Разработка языка Prolog началась в 1970 г. Аланом Кулмероэ (Alain Colmerauer) и Филиппом Русселом (Philippe Roussel) в университете горо­да Марсель, Франция. Они хотели создать язык, который мог бы делать ло­гические заключения на основе заданного текста. Их работа была частич­но мотивирована желанием примирить использование логики в качестве декларативного языка представления знаний с процессуальным подходом к представлению знаний, который был популярен в Северной Америке в

конце 1960-х и начале 1970-х годов.

Название Prolog было выбрано Филиппом Русселом как аббревиатура от французского PROgrammation en LOGique (PROLOG) и первая реализа­ция этого языка с использованием компилятора Николауса Вирта "Algol- W" была закончена в 1972 году. Основы современного языка были заложе­ны в 1973 году. Prolog постепенно распространялся среди тех, кто зани­мался логическим программированием, в основном благодаря личным контактам, а не через коммерциализацию продукта.

Только в 1977 году Д. Уоррен и Ф. Перейра в университете Эдинбурга создают очень эффективный компилятор языка Prolog для ЭВМ DEC-10 и переводят методы логического программирования в практическую плос­кость. Интересно, что компилятор был написан на самом Prolog. Эта реа­лизация Prolog, известная как "эдинбургская версия", фактически стала первым и единственным стандартом языка. Как правило, если современная Prolog-система и не поддерживает эдинбургский Prolog, то в ее состав вхо­дит подсистема, переводящая Prolog-программу в "эдинбургский" вид.

Позднее в 1980 году К. Кларк и Ф. Маккейб в Великобритании разра­ботали версию Prologа для персональных ЭВМ. А в 1996 году междуна­родной организация по стандартизации (ISO - International Organization for Standardization) была создана по языку программирования Prolog рабочая группа ISO/IEC JTC1/SC22/WG17 и принят стандарт ISO/IEC 13211-1 (Part 1: General core). Этот стандарт имеет две коррекции в 2007 и 2012 годах. Кроме этого в 2000 году был принят дополнительный стандарт ISO/IEC 13211-2 (Part 2: Modules), который стандартизует использование в Prolog модулей.

Как видно из приведенных выше стандартов, слухи о безвременной кончине Prolog не являются достоверными. Он и сейчас остается наиболее популярным языком искусственного интеллекта в Японии и Европе. В США, традиционно, более распространен другой язык искусственного ин­теллекта — язык функционального программирования Лисп.

В развитии языка Prolog наблюдаются очень интересные тенденции. Этот язык быстро приобрел популярность в Европе как инструмент прак­тического программирования. В Японии вокруг языка Prolog были сосре­доточены все разработки компьютеров пятого поколения. С другой сторо­ны, в США этот язык в целом был принят с небольшим опозданием в связи с некоторыми историческими причинами [1].

Одна из них состояла в том, что США вначале познакомились с языком Microplanner, который был близок к идее логического программирования, но неэффективно реализован. Определенная доля низкой популярности Prolog в этой стране объясняется также реакцией на существовавшую вна­чале "ортодоксальную школу" логического программирования, представи­тели которой настаивали на использовании чистой логики и требовали, чтобы логический подход не был "запятнан" практическими средствами, не относящимися к логике.

В прошлом это привело к распространению неверных взглядов на язык Prolog. Некоторые считали, что на этом языке можно программировать только рассуждения с выводом от целей к фактам. Но истина в том, что Prolog является универсальным языком программирования и на нем можно реализовать любой алгоритм. Позиция "ортодоксальной школы" была пре­одолена практиками, которые использовали более прагматический подход, объединив декларативный подход с традиционным, процедурным. Одной из самых мощных реализаций Prolog в настоящее время является система Visual Prolog, представляя собой полнофункциональную среду программи­рования. При этом он имеет богатую историю и является развитием и наследником таких систем, как Turbo Prolog и PDC Prolog.

• Turbo Prolog 1.0 (1986 г.) — Разработан датской компанией Prolog Development Center (PDC) в содружестве с фирмой Borland International. Система создавалась с серьезными отступлениями от неофициального стандарта языка, самым существенным из которых было введение строгой типизации данных, но это позволило значительно ускорить трансляцию и выполнение программ. Новый компилятор был по достоинству оценен программистами-практиками, хотя и критиковался в академических кругах.

• Turbo Prolog 2.0 (1988 г.) — Более мощная версия, которая содержала усовершенствованную интегрированную среду разработки программ, быстрый компилятор и средства низкоуровневого программирования. Кроме того, она предоставляла возможность работы с собственными внешними БД, dBase III и Reflex, интегрированным пакетом Lotus 1-2-3, графическим пакетом Paint Brush и другими приложениями. Фирма Borland распространяла эту версию до 1990 г., а затем компания PDC приобрела монопольное право на использование исходных текстов компилятора и дальнейшее продвижение системы программирования на рынок.

• PDC Prolog 3.31 (1992 г.) — Это был эффективный универсальный инструмент профессиональных программистов, который вскоре стал одним из наиболее широко используемых и мог работать в среде MS DOS, OS/2, UNIX, XENIX, PharLap DOS Extender и MS Windows. Эта версия была хорошо совместима с традиционными языками программирования, в первую очередь с языком C. В ней были расширены возможности создания приложений с интерфейсом GUI, принятым в MS Windows и OS/2

• Visual Prolog 4.0 (1996 г.) — В этой работе участвовали российские программисты под руководством Виктора Юхтенко, который позже стал техническим директором компании «Пролог-Софт», представляющей интересы PDC в России. В эту версию входят различные элементы: прежде всего, интерактивная среда визуальной разработки (VDE — Visual Develop Environment), которая включает текстовый и различные графические редакторы, инструментальные средства генерации кода, конструирующие управляющую логику (Experts), а также являющийся расширением языка интерфейс визуального программирования (VPI — Visual Programming Interface), Пролог-компилятор, набор различных подключаемых файлов и библиотек, редактор связей, файлы, содержащие примеры и помощь. Visual Prolog 4.0 поддерживается различными ОС, в том числе MS-DOS PharLap-Extended DOS, всеми версиями Windows, 16 и 32-битовыми целевыми платформами OS/2, а также некоторыми другими системами, требующими графического пользовательского интерфейса.

• Visual Prolog 7.4 (2013 г.) — Последняя версия, представленная на сайте PDC на момент написания данной книги.

Соседние файлы в папке Курсовой проект ПРОЛОГ