Prolog
Материал из Lurkmore
A long time ago, in a galaxy far, far away... События и явления, описанные в этой статье, были давно, и помнит о них разве что пара-другая олдфагов. Но Анонимус не забывает! |
Prolog (сокр. от французского PROgrammation en LOGique) — декларативный язык логического программирования, состоящий из фактов и правил логического вывода чуть менее, чем полностью.
Содержание |
[править] История
Впервые появился в начале 1970х годов. Интерес к языку возрос в 80-х годах, когда японские ученые решили использовать его для создания систем искусственного интеллекта в рамках национальной программы «компьютеры пятого поколения». После облома этого нацпроекта интерес к языку поугас, однако его до сих пор используют в некоторых ВУЗах при изучении математической логики, искусственного интеллекта и т. п. матана. Студенты этому абсолютно не рады, известен DOS-вирус «Гражданская оборона», целенаправлено поражающий Turbo Prolog и программы на нем.
Также фрагменты кода на Прологе были обнаружены в некой системной DLL от Windows NT4, код предположительно отвечал за привязку стека протоколов к сетевым картам.
[править] Примеры кода
Классика жанра:
helloworld:- write('Hello World!').
После чего этот скрипт загружается в интерпретатор и выполняется запрос:
?- helloworld.
Hello World!
true.
?-
Чуть более сложный пример:
% это факты: PHP, Java и Visual Basic являются быдлокодерскими языками
быдлокодерский_язык(php).
быдлокодерский_язык(java).
быдлокодерский_язык(visual_basic).
% это тоже факты: Вася - программист на похапе, Петя - на асме,
% Раджеш - на Visual Basic, Джон - на С и Адольф - на Brainfuck
программист(вася, php).
программист(петя, assembler).
программист(раджеш, visual_basic).
программист(джон, pure_c).
программист(адольф, brainfuck).
% а это - правило вывода - "быдлокодер - это программист на быдлокодерском языке"
быдлокодер(Некто):- программист(Некто, Язык), быдлокодерский_язык(Язык).
Если пользователь хочет узнать из этих данных, кто же-таки является быдлокодером, то он должен ввести запрос:
?- быдлокодер(А).
A = вася;
A = раджеш;
false.
?-
false в конце означает, что других быдлокодеров найти не удалось.
Ограниченные возможности применения и отсутствие всяких новомодных фич привело к тому, что сейчас Prolog практически никем не используется.
[править] Warning!
Студент, запомни: твой научник тоже был романтичным студентом, и ему тоже не давали покоя «инновационные технологии» своего времени. Возможно, некоторые из них он полюбил на всю жизнь. На пике популярности Prolog позиционировался как универсальный silver bullet, после которого никаких других языков не нужно, чем заразил умы многих. Если профессор пытается загипнотизировать тебя бородой на написание диплома на Прологе — беги! Вполне вероятно, что у него тяжелая травма на этой почве, и каждый год он выбирает жертву, которая будет пытаться смыть его позор и доказать всем. Тебя ждёт неминуемый FAIL с необходимостью переписать весь код за два дня до защиты, его ждёт новая жертва. По словам приезжих членов комиссии из default city, прецеденты всё ещё случаются по всей стране.
[править] Галерея
[править] См. также
[править] Ссылки
[ + ] Любой программист без словаря поймёт, что такое Prolog
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|