Пролог-автомат (pa) в поисковом движке FAIND: история развития языка - взлет и закат

см. ссылки на материалы по Прологу

Язык Пролог за небольшой промежуток времени (семидесятые - восьмидесятые годы 20 века) смог пройти весь жизненный цикл - от начальных разработок, стремительного повышения интереса со стороны узких специалистов, затем стремительный взлет популярности (вызванной скорее удачным пиаром и научной фантастикой под соусом серьезных проектов), падение интереса и почти полное забвение. Сама по себе такая судьба - обычное явление в мире информационных технологий, где новые, более совершенные, дидактически верные и теоретически более красивые языки программирования возникают каждый год и умирают тихо и безболезненно (ибо количество программных пакетов на этих языках редко превышает 2 - сам транслятор плюс демонстрационная программа типа "Ну здравствуй, мир"). Особенно мощный демографический бум языков программирования наблюдался в начале девяностых годов прошлого века, что связано с распространением персональных компьютеров.

Немногие разработанные языки оказались действительно востребованы индустрией. Иногда играла роль умелая пропаганда и пиар (Java), иногда - историческая случайность (популярность Delphi в России). Язык Пролог, к сожалению, оказался в реальности невостребован - слишком многого от него ждали, а потом оказалось, что сам по себе язык программирования помочь в решении серьезнейших задач, связанных с machine reasoning, не может. Кроме того, структура Прологовских программ очень трудна для восприятия из-за того, что иногда невозможно визуально предугадать ход логического вывода - единственный предикат-факт, запрятанный где-то в конце текста программы, может направить работу в совершенно непредсказуемое русло.

Эта сильная связанность предикатов с точки зрения общего исполнения программы превращает большие Пролог-программы в кошмарные головоломки. Программисты C++ могут приблизительно оценить сложность программирования на Прологе, если вспомнят, сколько сил требует иногда написание простых алгоритмов с использованием шаблонов и STL - связка из нескольких байндеров, функторов, стандартных алгоритмов, выполняющая в одной строке сложное преобразование контейнера, выглядит обычно как произведение искусства. Но реальная индустрия и инженерная практика не допускают, чтобы искусство превращалось в лейтмотив. Вы никогда не пытались программировать на APL? Очень красивый язык - если Вы готовы перевернуть свое мышление. Интерпретация команд справа налево. Мощнейшие операторы манипулирования массивами. И совершенная невозможность разобраться в коде через день - каждая программа из нескольких строк, содержащая иероглифические знаки операторов, и производящая те же действия, для которых требуется 100 строк программы на C++, является шедевром.

Программист-практик это на 900% мастеровой, для работы которого нужен удобный инструмент, позволяющий писать и сопровождать программный код. Трудность сопровождения Пролог-программ и трудность мышления на Прологе оказались непреодолимыми препятствиями для его широкого распространения. Тут резонен вопрос - а зачем вообще использовать Пролог в рамках поискового движка? Нам нужен был механизм логического вывода в рамках грамматической машины. Язык Пролог предлагал такой механизм - и вместо разработки собственного формализма мы реализовали более-менее известный формализм Пролога.

Основные вехи

1965 Дж. Э. Робинсон публикует работу "Машинно-ориентированная логика, основанная на принципе резолюции"
1968 Лавленд публикует работу "Автоматическое доказательство теорем путем устранения моделей"
1971 Ковальски и Куэнер публикуют работу "Линейный отбор при помощи функции резолюции"
1973 В 1973 г. группа исследователей из Марсельского университета (Франция) под руководством Алана Колмероэ, опираясь на работы Джона Робинсона, посвященные методу резолюций, создала программу для доказательства теорем, которая была реализована на языке Фортран. Впоследствии этот продукт получил название Пролог
1974 Ковальски публикует работу "Логика предикатов как язык программирования"
1977 Уоррен и Перейра в Эдинбургском университете (Шотландия) создали интерпретатор/компилятор языка Пролог для DEC-10
1980 В Империал Колледже (Англия)  К. Кларк и Ф. Маккейб разрабатывают интерпретатор языка микропролог (IC-пролог) для микрокомпьютеров
1981 Обнародованы планы создания компьютеров пятого поколения, использующих методы логического программирования, создание Института по разработке методов создания компьютеров нового поколения (ICOT). В основу методологии разработки программных средств было положено логическое программирование. Целью проекта декларировалось создание систем обработки информации, базирующихся на знаниях, а главным средством реализации должен был стать язык Пролог. В это же время появляется множество коммерческих реализаций Пролога практически для всех типов компьютеров. К наиболее известным можно отнести CProlog, Quintus Prolog, Silogic Knowledge Workbench, Prolog-2, Arity Prolog, Prolog-86, Тurbo Prolog и др.
1988 Вышла версия Turbo Prolog 2.0, включающая усовершенствованную интегрированную среду разработки программ, быстрый компилятор и средства низкоуровневого программирования. Фирма Borland распространяла эту версию до 1990 г., а затем компания PDC приобрела монопольное право на использование исходных текстов компилятора и дальнейшее продвижение системы программирования на рынок под названием PDC Prolog.
1992 Появилась версия PDC Prolog 3.31 — эффективный универсальный инструмент профессиональных программистов, который вскоре стал одним из наиболее широко используемых. PDC Prolog 3.31 работал в среде MS DOS, OS/2, UNIX, XENIX, PharLap DOS Extender, MS Windows. Эта версия была хорошо совместима с традиционными языками программирования, в частности с Си. В ней были расширены возможности создания приложений с GUI, принятым в MS Windows и OS/2.
  © Mental Computing 2010

последние изменения 01.06.2005