Grokbase Groups Perl ai March 2005
FAQ

--- Mark Kvale wrote:
I would opt for a couple of small examples that are almost
self-explanaotry
and then describe in a high level way a seriously useful Prolog
application.
Sounds workable.
However, I am happy to be a devil's advocate as well :-) Here are
some
aggressive questions you might have to field from folks who have
heard of
Prolog:
Wonderful idea! Thanks. Let me know if you think I'm goofing any of
these.

Preface: I'd like to show programmers how to use Prolog from their
Perl programs, not just how to use Prolog.
1) Prolog was hot in the 80's but is hardly ever used these days. If
it hasn't stood the test of time, why should I care?
Prolog has traditionally been viewed as rather slow and, due to the
nature of its design, debugging is sometimes a painful experience.
Further, because so many programmes are weaned on imperative or OO
languages, Prolog just seems "foreign". Building large applications
can be cumbersome, as a result of these factors.

I argue that programmers should use Perl for the bulk of the work and
use Prolog for those portions of the application where a rule-based
approach is clearly merited, or where data is heavily relational in
nature. Thus, they can leverage the strengths of logic programming
only when it's cleary a good choice.
2) There are about 20 Prolog compilers out there, all incompatible
due to a
weak language spec. This a recipe for vendor lock-in; how could I
make my
prolog programs last?
Hopefully, my long-term goal is to port the bulk of AI::Prolog to C and
write a "sugar" wrapper that allows someone to write logic programs in
Perl. Eventually, I might consider a WAM (Warren Abstract Machine) in
Parrot. I'd like to avoid the external dependencies. However, for the
time being, if you can figure out Language::Prolog::Yaswi, it's a good
choice, though it does require SWI-Prolog.
3) Why is Prolog a good match with Perl?
Perl can already handle functional, OO, and imperative progamming.
However, if a declarative approach is merited, it's rather tough to
pull that off in Perl. I'd like to solve that.
4) Pretty CS langauages are all well and good, but how do I get real
work
done? Are there Prolog bindings for databases, network and systems
libraries, graphical toolkits? Is there a decent Prolog IDE?
I would argue that most of that should be done in Perl and let the
Prolog layer handle only those bits that Perl is not well suited for.

Cheers,
Ovid

If this message is a response to a question on a mailing list, please send
follow up questions to the list.

Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 7 | next ›
Discussion Overview
groupai @
categoriesperl
postedMar 8, '05 at 7:18p
activeMar 13, '05 at 12:51a
posts7
users4
websiteperl.org

People

Translate

site design / logo © 2021 Grokbase