А у нас в МИРЭА некоторым группам нахаляву этот Prolog разъясняли на
предмете "Логическое программирование". Так там отдельные ребята плевались,
а другие говорили, что это и самый кайф - совершенно не похоже на то,
делается с помощью основных языков типа C и Pascal.
Но у них был Turbo Prolog, на который фирма Borland International потом
быстренько забила, также как и на Turbo Basic.
eXOR>Ну уж русский - то пожалуй один из самых ненормальных. Нормальный пожалуй - латинский.
Это ты латынь имеешь ввиду? :))
Головку не напекло? нормальный, ну-ну. :))
А нас в институдет ему учат))))) ГМетАУ)))
Я все лабы за два вечера сдал))) - если разобраться то ниче жить мона))) мне понравилось как на нем сделана простая задача - решение пирамид Ханоя)))
Но учат не потому, что он кул, а потому что другого ничего то и незнают)) ну окромя паскалей))) (ну и сей на уровне cout да cin)))
>Все переходите на Prolog!
>Единственный нормальный язык (кроме русского)
Мой препод тоже так говорил :)
На самом деле он действительно весьма неплох для определенного круга задач, которые, скажем на Цэ или Пасквиле решать было бы значительно геморройнее. И наоборот, то что на Цэ/Пасквиле делается просто, на Прологе приходится делать бескрышные конструкции.
> А какой диалект реализует GNU Prolog ? Или он pure ? 8)
Цитата с сайта:
The Prolog part conforms to the ISO standard for Prolog with many extensions very useful in practice (global variables, OS interface, sockets,...).
GNU Prolog also includes an efficient constraint solver over Finite Domains (FD). This opens contraint logic pogramming to the user combining the power of constraint programming to the declarativity of logic programming.
> Но у них был Turbo Prolog, на который фирма Borland International потом быстренько забила, также как и на Turbo Basic.
> А вот GNU от Turbo Prolog'а сильно отличается?
Лицензия на Borland Prolog была возвращена датской фирме PDC (Prolog Development Center, http://www.pdc.dk/), которая продолжила развивать этот диалект, весьма далекий от стандарта языка. Надо сказать, что у американских фирм с логическим программированием сложидись не очень удачные отношения, у европейских исследователей и разработчиков дела обстоят несколько лучше. В России также есть интересные результаты, например Actor Prolog (http://www.cplire.ru/Lab144/)... А вообще много полезных ссылок на страничке http://www.afm.sbu.ac.uk/logic-prog/
Там все просто, если что - могу немного проконсультировать, как-никак лет пять преподавал в свое время... Надеюсь, что был не очень хреновым преподом :)
Prolog устарел. Конечно же, логическое программирование - просто как грабли, ну дык ведь пролог претендовал на большее, предполагалось из него язык общего назначения сделать. Фигня вышла. Короче, если кого декларативное программирование интересует, то смотрите на Mercury. А Пролог пора забыть.
Конечно устарел - все-таки ровесник Си :) Чистый Пролог - действительно скорее классика, чем инструмент. А вот развитие идей, связанное например с concurent constraint programming... Языков десятки тысяч, а вот сможет ли какой-нибудь из соверменных языков декларативного программирования оказать такое же влияние на индустрию разработки ПО, сопоставимое по своему значению с влиянием языков Fortran, Algol, Cobol, PL/I, Ada, LISP, Prolog, Pascal, C, C++, Java - время покажет. Кстати, страничка Mercury - http://www.cs.mu.oz.au/research/mercury/
Жаль, что под Linux они смогли только консольную версию сделать. Для
целей разработки этого маловато будет. Радует, что в gvim'е поддержка
синтаксиса Prolog'а присутствует.
Насчёт Mercury: представляю, бедных студентов, если и этот язык в
дополнение к прологу в курс "Логическое программирование" включат.
Кстати, мне в институтском курсе "Функциональное программирование"
преподавали LISP.
А какой ещё язык мог бы для этого курса подойти?
Лисп крайне слабое отношение к функциональному программированию имеет. Тут куда ближе к теме ML, Clean, Miranda, Hope, Haskell...
Лисп во первых очень не чистый, полное раздолбайство на тему области видимости определений, переменные там всякие, ну и напрочь отсутствует система типов. В общем, пользоваться им на практике очень даже можно, а вот учить на его примере - зло и глупо.
Вопрос: А эти языки умеют каким-нибудь каноническим способом использовать
стандартные библиотеки, т.е. имеют переносимое преобразование
структур данных из собственного представления в родные для библиотек
и обратно ?
Еще вопрос: Где можно прочитать непредвзятые обзоры по функциональным
( и другим ) языкам ( об их состоянии, скорости развития и перспективах ) ?
Накидайте ссылок, please.