Article View: comp.lang.prolog
Article #2559Re: How do you like Turbo-Prolog? - (nf)
From: Mike Newton
Date: Sun, 08 Mar 1987 08:19
Date: Sun, 08 Mar 1987 08:19
68 lines
3751 bytes
3751 bytes
[This is a review of Turbo Prolog sent out in response to Peter Alfke's
recent comments on net.lang.prolog. The review was originally sent to the
AI-DIGEST many months ago, but I believe that net.lang.prolog would also
be a good place for it!]
[Also, in response to Peter's comments about the speed of the vax --
Cprolog runs on all of our suns, at (*real*) speeds (see notes below)
that are much better than Turbo's]
[ Caveats to remember when reading this review: I have *not* read all
of the manual, nor used it on many programs. Views expressed are
from the perspective of someone who has done the code generation and
evaluatable predicates for a high speed (~900 KLips on one processor
of a IBM 3090) prolog compiler. I have no affiliation with
Borland, and only a (*very*) indirect affiliation with IBM -- MON]
From a local software store we purchased Turbo Prolog over the weekend.
It came as a cellophane wrapped book with a couple of floppies. It cost
$69.95, list of $99.
The enviromnent was very nice. There was a window for the editor, goals
debugging information and messages. This seemed well done, and responded
reasonably well (I am not used to IBM-PC's.)
The unfortunate part was the Pascal-ization of the language. Everything
had to be typed (they called it domains). As far as I could tell, lists
had to be composed soley of other lists or elements all of one type. One
had to define the possible terms (giving the functor) that could be
arguments to a predicate. It seemed impossible to write generic predicates
for dealing with arbitrary types of terms.
Ex: to have a term that could be a 'symbol' (atom) or an integer
one had to do this:
domains
aori = a(atom) or i(integer)
It was not possible to just use an atom or an integer as a subterm...
Typing each subterm of a term is not my idea of Prolog.
After about an hour we got the 'standard' timing example of naive
reverse running (Some people have used other, non-environment-creating
samples. This is an unfair comparison). It did 496 unifications in
aproximately 11/100 of a second. This amounts to a speed of a little
under 5 Klips. Considering that they do not need to do 'real' unification
(since everything is pre-typed, and thus can be reduced to a simple test),
this speed is not particularly impressive.
Also, and most seriously (thanks to Fernando Pereira) there are two more
*MAJOR* problems: the logical variable doesn't really
exist: it is a runtime error to do variable-to-variable unifications
as in
p(X,X).
?- p(X,Y), p(X,a).
And, it is not possible to assert clauses with variables.
In summary, I would say that there advertising is at best a
misrepresentation. They are not selling a 'Prolog' system!
(If I owned a TM on the word 'Prolog', I would be tempted to sue them!)
newton@cit-vax.caltech.edu {ucbvax!cithep,amdahl}!cit-vax!newton
Caltech 256-80 818-356-6771 (afternoons,nights)
Pasadena CA 91125 Beach Bums Anonymous, Pasadena President
"Life's a beach, then you graduate"
Technical Details
Message-ID:
<1974@cit-vax.Caltech.Edu>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!seismo!rutgers!ames!cit-vax!newtonReferences:
<426@thumper.UUCP> <7000002@iaoobelix.UUCP> <1973@cit-vax.Caltech.Edu>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!seismo!rutgers!ames!cit-vax!newton From: newton@cit-vax.Caltech.Edu (Mike Newton) Newsgroups: comp.lang.prolog Subject: Re: How do you like Turbo-Prolog? - (nf) Message-ID: <1974@cit-vax.Caltech.Edu> Date: Sun, 8-Mar-87 03:19:30 EST Article-I.D.: cit-vax.1974 Posted: Sun Mar 8 03:19:30 1987 Date-Received: Mon, 9-Mar-87 03:14:51 EST References: <426@thumper.UUCP> <7000002@iaoobelix.UUCP> <1973@cit-vax.Caltech.Edu> Reply-To: newton@cit-vax.UUCP (Mike Newton) Organization: California Institute of Technology Lines: 68 Keywords: Turbo Pascal Prolog