Пролог (язык программирования)
Материал из Википедии — свободной энциклопедии
Пролог (Prolog) — язык логического программирования, основанный на логике дизьюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Начало истории языка относится к 70-м годам XX века. Будучи декларативным языком программирования, Пролог воспринимает в качестве программы некоторое описание задачи, и сам производит поиск решения, пользуясь механизмом бэктрекинга и унификацией.
Содержание |
[править] Развитие
Интерес к Прологу поднимался и затихал несколько раз, энтузиазм сменялся жёстким неприятием. Наиболее высоко был поднят интерес к языку Пролог как к языку будущего во время разработок японской национальной программы компьютеры пятого поколения в 1980-х годах, когда разработчики надеялись, что с помощью Пролога можно будет сформулировать новые принципы, которые приведут к созданию компьютеров более высокого уровня интеллекта. Неправильная оценка этой перспективы явилась одной из причин неудачи проекта.
В настоящее время Пролог, несмотря на неоднократные пессимистические прогнозы, продолжает развиваться в разных странах и вбирает в себя новые технологии и концепции, а также парадигмы императивного программирования. В частности, одно из направлений развития языка (в том числе и в России) реализует концепцию интеллектуальных агентов.
[править] Кроссплатформенность
Пролог реализован практически для всех известных операционных систем и платформ интерпретации Java и .NET. В число операционных систем входят OS для мэйнфреймов, всё семейство Unix, Windows, OS для мобильных платформ.
[править] Архитектура
Многие современные реализации языка имеют внутреннее расширение за счет ООП-архитектуры. Кроме проприетарных решений также существуют реализации Пролог на условиях open source. Важно, что для языка существует стандарт ISO принятый как ISO/IEC JTC1/SC22/WG17.
Базовым принципом языка является равнозначность представления программы и данных (декларативность), отчего утверждения языка одновременно являются и записями, подобными записям в базе данных, и правилами, несущими в себе способы их обработки. Сочетание этих качеств приводит к тому, что по мере работы системы Пролога знания (и данные и правила) накапливаются. Поэтому Пролог-системы считают естественной средой для накопления базы знаний.
[править] Россия и ВПК
Очень интересно, что в России применялось одноименное ПО — «ПРОЛОГ» для реализации одного из самых амбициозных и технологически успешных проектов ВПК — «Буран». Также существуют весьма интересные, но спорные мнения и реализации по поводу применения Пролог в области задач искусственного интеллекта и экспертных систем.
[править] Критика
Пролог критикуется в первую очередь за свою недостаточную гибкость, отчего решения на обычных языках программирования (типа С++, Java) в сочетании с базами данных оказываются более технологичными, чем аналогичные решения на Прологе. Негибкость заключается в трудности изучения языка, более высоких требований к квалификации программиста на Прологе, трудности отладки программы, неразвитости технологии программирования, плохой контролируемости промежуточных результатов.
[править] Новая перспектива
Перспектива развития всемирной Сети, известной как проект «WEB-2» поддерживает особый интерес к семантике распределенных данных и их обработке декларативными методами. В связи с этим появились концепции языка OWL основанного на концепции First-Order Logic(FOL) реализацию которой, в свою очередь, можно рассматривать как значительно более расширенную технику классического Prolog.
[править] Ссылки
- Международный стандарт ISO для языка Пролог
- Русский Пролог — Актор
- Русский Пролог для проекта «Буран»
- Реализации Пролог на условиях Open-Source
- Реализации Пролог с применением ООП
- Реализации Пролог на платформе Java
- Реализации Пролог на платформе .NET
- Совместное использование языка Пролог и SQL
- История языка Prolog
- «Искусственный интеллект» и Пролог
- «Интеллектуальные агенты» и Пролог
- Алгебра и SQL
- Искусственный интеллект: стагнация или новая перспектива
Используемые в разработке: ABAP/4 | Ада | Ассемблеры | Awk | BASIC | Си | COBOL | C++ | C# | ColdFusion | D | Delphi | Forth | FoxPro | DataFlex | Фортран | Java | JavaScript | J++ | J# | Icon | Limbo | Лисп | Lua | Objective-C | Оберон | Oz | Паскаль | Perl | PHP | PL/I | Пролог | Руби | Python | Tcl | Smalltalk | SQL | Visual DataFlex | Visual Basic | VB.NET
|