4 ms·
My explanation at LtU, in response to a question from Ehud Lamm: I think that Prolog has lasting interest as a teaching language, and is one of the ha
by chalst 15y ago
My explanation at LtU, in response to a question from Ehud Lamm:
I think that Prolog has lasting interest as a teaching language, and is one of
the handful of PLs that everyone with a broad interest in programming should
learn, but that the limitations of its basic computational mechanism make it
uncompetitive as a general PL. I find that Haskell, through the list of
successes paradigm, is usually a better language for writing the kind of
programs Prolog is good at than Prolog.
I think the LP community should be seriously looking for a successor. There's
no shortage of candidates.
- http://lambda-the-ultimate.org/node/2803#comment-41684 http://lambda-the-ultimate.org/node/2803#comment-41684
As I said in that thread, I think the LP community is in denial about the unsuitability of Prolog as a general-purpose programming language; this article echoes the Lispers claim that Prolog was killed by its association to over-ambitious AI projects: I think the argument in the case of Prolog is much weaker than in the case of Lisp.
- _delirium 15y agoI don't think most of the LP community still promotes Prolog, although it's hard to delineate exactly what the LP community is. Going by papers presented at AAAI and IJCAI, the bulk of the research is on answer-set programming (http://en.wikipedia.org/wiki/Answer_set_programming http://en.wikipedia.org/wiki/Answer_set_programming), which tends to be used as a more specialized solver rather than as the top-level loop of a program. In other corners of the world, multiparadigm logic/functional languages like Mercury seem to be what people are hanging their hats on.
- chalst 15y agoThat's a good example. I've always thought of ASP being more influenced by SAT solvers than Prolog, but following the links from the WP article, there's a lot of Prolog culture there: Horn clauses, Herbrand interpretations, &c. So maybe LP is moving on. I should take a closer look. (I probably should have years ago: I've done a fair bit of refereeing for IJCAI over the years). Multi-paradigm languages are not so great for the Kowalski-esque LP world, because the elements of these languages don't fit in the Kowalski/Pierce picture of knowledge representation and reasoning. Something like lambda-Prolog, which uses higher-order unification to model functional programming within a clausal language, seems to me to be a much better, more conservative step for this community.
- _delirium 15y agoI think ASP's a bit of a merger of the two cultures. The implementations are heavily SAT-influenced, with all existing ones based on eliminating variables to ground to a finite program that's then solved. But its semantics (stable-model semantics) originated in the early-90s flurry of attempts to come up with a solid logical semantics for LP (alongside other attempts like the well-founded semantics), to replace Prolog's operationally defined "whatever SLDNF resolution returns" semantics, and especially its displeasing-to-logicians property of the semantics depending on statement order. And the most widely used surface syntax, sometimes called "AnsProlog", is an adaptation of Prolog syntax. This research group in particular is now pushing it heavily in the programmability/expressivity direction, which is pretty interesting: http://potassco.sourceforge.net/ http://potassco.sourceforge.net/ . There is even some other research floating around on more software-engineeringish things like ASP debugging techniques.