[comp.lang.prolog] PROLOG Digest V5 #38

PROLOG-REQUEST@SUSHI.STANFORD.EDU (Chuck Restivo, The Moderator) (05/18/87)

PROLOG Digest            Monday, 18 May 1987       Volume 5 : Issue 38

Today's Topics:
                    Pragmatics - Standardisation,
                 Implementation - Side Effects & BIM
----------------------------------------------------------------------

Date: Tue, 12 May 87 10:20:40 BST
From: William Clocksin <wfc%computer-lab@Cs.Ucl.AC.UK>
Subject: Standardisation

A note on this appeared some months ago.  The British Standards
Institute has a group working on this.  The main committee meets
quarterly.  There are formal links with AFNOR, ISO, and ANSI;
a number of people in the Prolog community are involved and
are sent the papers.  Any suggestions/ideas/opinions that are
aired in the Prolog Digest will automatically come to the attention
of the committee.  The standardisation process operates by
consensus;  this takes several years, and we are about halfway
through.

------------------------------

Date: 8 May 87 14:21:09 GMT
From: Gerda Janssens <mcvax!prlb2!kulcs!gerda@seismo.css.gov>
Subject: side-effects

The efficient update problem is also addressed by our group at Leuven
where abstract interpretation is used to detect garbage at compile
time.  Often the detected garbage can be reused, the net effect being
the same as with destructive assignments.

Papers on the subject will appear in Proc. IFIPWC2.1. Working
Conference on Program Specification and Transformation (Bad-Tolz April
86) and in Proc. 1987 Symposium on Logic Programming.

-- M. Bruynooghe and G. Janssens

------------------------------

Date: Sun, 17 May 87 14:47:50 PDT
From: Mike Newton <newton@vlsi.caltech.edu> 
Subject: BIM review

        This is a copy (slightly edited) of a letter I recently sent
to BIM.  I have no connection with them other than possibly being a
customer in the near future.  I thought that the people on the list
may be interested in this review:

Dear People,

        Recently we were sent a demonstration copy of BIM prolog by
Bert Shure.  This letter represents my experience using this product a
couple of hours a day, over the last few days.  We were running on a
Sun-3/160 using SunOS 3.0.

        Overall the product seemed very nice.  The compiler produced
fast code and the interpreter also ran fast.  The interpreter and
compiler interacted well, there was a DEC-20 syntax compatibility
mode, and most of the normal evaluateable predicates existed.  However
we have decided not to buy it quite yet due to a few problems mentioned
below.

        My first comments regard the installation and demonstration
scripts.  I did not spend a lot of time trying to fix the scripts, as
it was easier to do the correct things manually.  However the fact
that they were broken was mildly annoying.  It is also not a fair
assumption that people installing BIM prolog will want to have a
separate UID (user) for this program.

        The most serious deficiencies could roughly be described as
`robustness' issues.  These directly interfere with the ability to use
BIM prolog successfully:

        - Dumped core frequently -- Error recover was almost
non-existant.  This was probably just a result of running large
programs.  Often this came with a message of the form ``sindsig: bad
user stack, pid=1751, sig=11'' and ``usp is ef81fdc action is e6f10,
upc 2b872'' appearing on the console.

        - Stack protection -- most of the time that it dumped core
seemed to be the result of stack overflow.  There should be a compiler
switch to put a stack test at the beginning of each predicate -- this
is easy, as one can compute the maximum amount of each stack produced
by each procedure at compilation time.  A corresponding run time flag
should be used for clauses that are added to the program though
asserts.

        - Neither compilation with the ``occurs'' flag, nor use of
occurs/2 actually guaranteed that a circular term was not being
created.

        - There was no way (I could tell) of a program finding out the
current usage in the various stacks.  (This seriously aggravated the
stack overflow problem).  (please(statistics) reported the statistics
out to the user).

        In addition to the above problem, BIM prolog lacks a few minor
features (roughly in order of importance):

        - The debug printer should recognize recursive terms, and
print them accordingly.

        - A description of the format of the WAM code in the
intermediate files.

        - A description of the format of terms in memory -- useful if
one can pass a pointer to a term to a C program.  I do not mind having
to do horrible things in C as long as I CAN do them.  Even if I can
not modify terms, I still may still want to look at them from C code.

        - Online documentation -- I often dial in to the machine at
work.  Though the documentation does not have to be part of the system
(like Quintus), it should still be on line in some format.

On the other hand, there were numerous features that were useful:

        - Not only was the compiler fast (about 125KLips), but the
interpreter was fast too (about 4KLips -- both measurements on a
SUN-3/160).  The speed of asserts was ok -- about 25 ``complicated''
(70 characters/clause, two characters/atom, one character/var) clauses
a second.

        - The suncore/sunwindows support.

        - The (almost complete) foreign language interface, along with
some samples.

        - Very nice debugging options.

        In summary, we were impressed with the product, but are still
debating whether or not to buy it.  If some of the above problems were
addressed, we would almost certainly buy it.

        A final question:  Will there be support of ``x-windows'' in a
future release?


Sincerely,
Michael O. Newton

------------------------------

End of PROLOG Digest
********************