[net.lang.prolog] PROLOG Digest V4 #1

PROLOG-REQUEST@SU-SCORE.ARPA (Chuck Restivo, The Moderator) (01/11/86)

PROLOG Digest            Monday, 13 Jan 1986        Volume 4 : Issue 1

Today's Topics:
                           Administration,
                     Implementations - Utilities,
             & Sequentiality of Unification vs. Parallel,
        & C-PROLOG V1.5 and VAX/VMS C V2.1 compiler warnings,
                  LP Philosophy - Hewitt's Challenge
----------------------------------------------------------------------

Date: Sat 11 Jan 86 10:11:32-PST
From: Chuck Restivo  <Restivo@SU-SCORE.ARPA>
Subject: Administration

Sorry for the delay between the last issue, I have been
consumed with bothersome, unpleasant minutia.

Volume Three of Prolog Digest has been archived on-line in
SU-SCORE:'s <Prolog> directory.  It is available as

Archive_Volum3_I1-n.Txt

The current volume will be available as Archive.Txt in <Prolog>

Best,

-- Chuck

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

Date: Thu, 5 Dec 85 10:09:03 est
From: Catherine A. Meadows <Meadows@nrl-css.ARPA>
Subject: loops

I have recntly become interested in loop checking on Prolog.
Does anyone know of any papers or research done on this subject
(besides the recent papers published in the ACM Sigplan Notices).

-- Cathy Meadows

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

Date: 20 Nov 85 10:47:00 EDT
From: "CUGINI, JOHN" <cugini@nbs-vms.ARPA>
Subject: Prolog utilities

This is probably something "everybody knows", but I don't -
is there an accessible library somewhere of all the humdrum
Prolog routines found in Clocksin & Mellish, e.g. member, subst,
append, delete, is_integer, etc, etc (and maybe other goodies
besides)? Or do I have to key all that stuff in myself?

-- John Cugini

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

Date: Sun, 17 Nov 85 01:25:06 est
From: Bruce Smith <unc!bts%unc.csnet@CSNET-RELAY.ARPA>
Subject: Sequentiality of unification vs. parallel Prolog

I'm posting the following for someone in our department:

     There are those who claim that since unification is
     "inherently sequential" that "PROLOG would not be a
     good candidate for a parallel programming language."
     (Quote from D. Mizell's article in ZeroOne Supernet.)
     Similar statements have been made on various mailing
     lists and newsgroups.

     If arithmetic operations were inherently sequential,
     would anyone claim that any language using arithmetic
     would not be good for parallel programming? I don't
     recall anyone stating that a particular parallel
     machine was good because it added n-bit integers in
     time O(log n).

Comments?

-- Bruce T. Smith

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

Date: Mon, 11 Nov 85 10:35:01 PST
From: Ching-Tsun Chou <chou@LOCUS.UCLA.EDU>
Subject: Hewitt's message

I'd like to reply to the message by Hewitt in V3#44 of Prolog
Digest which said:

.... I argue that the above compiler [by Clocksin] is not a very
good test  of Prolog because the code produced by the proposed
Prolog compiler for Common Lisp WILL NOT RUN on a standalone
Prolog system.  Thus the proposed compiler does not address a
fundamental problem which is the LACK OF EXPRESSIVE CAPABILITY in
the Prolog language:  there is large and growing amount of
software written in Common Lisp which will NEVER execute efficiently
on standalone Prolog systems.  On the other hand Prolog programs
will ALREADY execute efficiently on Lisp systems.  Thus the compiler
which Clocksin proposes does not address the fundamental problems of
Prolog.
_____

Extending Hewitt's arguments, it seems to me that ASSEMBLY
LANGUAGES are the languages of the strongest expressive
capability: almost any language can be executed efficiently
on a assembly language machine!  So, is the "lack of
expressive capability" one of the "fundamental problems of
Prolog"?

-- Ching-Tsun Chou

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

Date: 27 Nov 85 12:56:00 EDT
From: "Nunn, JOHN C." <Nunn@nbs-vms.ARPA>
Subject: C-PROLOG V1.5 and VAX/VMS C V2.1 compiler warnings

Version 2.1 of VAX C detects 2 possible errors when compiling
module main.c of C-PROLOG (V1.5).  The warning messages are:

2352    2                   y = MolP(k1)->Env; k1 = MolP(k1)->Fn;
%CC-I-NONSEQUITUR, "Fn" is not a member of the specified structure
 or union.

2568    2                   bn = &(SkelP(FunctorP(MolP(ARG1)->Sk)->
 Fn)->flgsoffe);
%CC-I-NONSEQUITUR, "Fn" is not a member of the specified structure
 or union.

%CC-I-NONSEQUITUR, "FInfo" is not a member of the specified structure
 or union.

It appears that the type casting in both statements is incorrect.
Unless I'm mistaken, these lines sould read:

        y = MolP(k1)->Env; k1 = SkelP(k1)->Fn;

and
        bn = &(FunctorP(SkelP(MolP(ARG1)->Sk)->Fn)->flgsoffe);

Can anyone confirm that these 2 changes are correct, possibly
from a later version of C-PROLOG?

Thanks,

-- John

PS. This same module, main.c, won't compile at all under V2.0.

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

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