[comp.lang.prolog] PROLOG Digest V4 #75

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

PROLOG Digest           Wednesday, 19 Nov 1986     Volume 4 : Issue 75

Today's Topics:
         Implementation - CProlog 1.5.4 fix to update 1.5.5,
        LP Library - Declarative Language Bibliography, Part V
----------------------------------------------------------------------

Date: Sun, 2 Nov 86 23:37:36 PST
From: Mike Newton <newton@vlsi.caltech.edu>
Subject: CProlog 1.5.4 fix to update to 1.5.5

Hello --

All changes were produced with 'diff -c5 NewFile Oldfile' so
that in each pair, the code appearing first is the new
('corrected') code.

Corrected:

[1] Fix a bug I introduced when trying to fix #2 below.
[2] Fix the goal f(X) :- ( true, ! ; writeX), X =< 6.
[3] Conform get to skip over blanks.

*** V1.5.5/main.c       Sun Nov  2 18:11:56 1986
--- V1.5.4/main.c       Sun Nov  2 17:59:26 1986
***************
*** 1081,1091
      }

      /* nonempty continuation */

      notfoot:
/* Oh boy is this line useful -- MON */
-     x1 = X->gsofcf;
      if (IsPrim(c)) goto efail;
      if (SkelP(c)->Fn != commatag) {
        pg = c; c = NULL;
        goto icall;
      }

--- 1081,1090 -----
      }

      /* nonempty continuation */

      notfoot:
      if (IsPrim(c)) goto efail;
      if (SkelP(c)->Fn != commatag) {
        pg = c; c = NULL;
        goto icall;
      }
***************
*** 1200,1211
            HighTide(v,Vtide);
            v = x+szofcf+((X->altofcf)-FlOffset)->ltofcl;
            vv = X->lcpofcf;
            vv1 = VV->gsofcf;
            HighTide(tr,TRtide);
!           if (X->trofcf != tr) {      /* this fixes f:-
(true,!;g(X)),g. */
!               register PTR kept, old, xentry ; PTR globound, locbound;


/* If debugging, trail entries pointing to frames not
   being discarded cannot be removed, otherwise  the
   retry option would not work.  The variables globound
   and locbound contain the lowest discardable
   entries for the global and local stack respectively */

--- 1199,1210 -----
            HighTide(v,Vtide);
            v = x+szofcf+((X->altofcf)-FlOffset)->ltofcl;
            vv = X->lcpofcf;
            vv1 = VV->gsofcf;
            HighTide(tr,TRtide);
!           if (X->trofcf == tr) goto continuation;
!           { register PTR kept, old, xentry ; PTR globound,locbound;


/* If debugging, trail entries pointing to frames not being
   discarded cannot be removed, otherwise  the retry option
   would not work. The variables globound and locbound
   contain the lowest discardable
   entries for the global and local stack respectively */
***************
*** 1305,1315
        case _get0:             /* get0(n)     b20 */
            IfInput(modeflag,k = ConsInt(Get()));
            goto unifyatom;
        case _get:              /* get(n)   b21 */
            IfInput(modeflag,
!               do ch = Get(); while (ch <= ' ' || ch >= 127);/* '=' -- MON */


            )
            k = ConsInt(ch);
            goto unifyatom;
        case _skip:             /* skip(n)  b22 */
            ch2 = intval(&(ARG1));

--- 1304,1314 -----
        case _get0:             /* get0(n)     b20 */
            IfInput(modeflag,k = ConsInt(Get()));
            goto unifyatom;
        case _get:              /* get(n)   b21 */
            IfInput(modeflag,
!               do ch = Get(); while (ch < ' ' || ch >= 127);
            )
            k = ConsInt(ch);
            goto unifyatom;
        case _skip:             /* skip(n)  b22 */
            ch2 = intval(&(ARG1));





*** V1.5.5/pl/init      Sun Nov  2 18:13:52 1986
--- V1.5.4/pl/init      Sun Nov  2 18:01:22 1986
***************
*** 93,104
  (A -> B ; C) :- !, $cond(A,B,C).

           $cond(A,B,C) :- $user_call(A), !, $user_call(B).
           $cond(A,B,C) :- $user_call(C).

! (A;B) :- $call(A).
! (A;B) :- $call(B).
  (A -> B) :- $user_call(A), !, $user_call(B).

   see(F) :- 10.
   seeing(F) :- 11.
   seen :- 12.

--- 93,105 -----
  (A -> B ; C) :- !, $cond(A,B,C).

           $cond(A,B,C) :- $user_call(A), !, $user_call(B).
           $cond(A,B,C) :- $user_call(C).

! % Old version crashed w/ DB: f(A) :- (true, ! ; A=0),
A =< 7.  -- MON

% This seems to fix an  -- MON
! (A;B) :- $hidden_call(A).
% obscure bug  -- MON
! (A;B) :- $hidden_call(B).
  (A -> B) :- $user_call(A), !, $user_call(B).

   see(F) :- 10.
   seeing(F) :- 11.
   seen :- 12.

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

Date: Mon 17 Nov 86 11:05:27-PST
From: Chuck Restivo  <Restivo@Score.Stanford.EDU>
Subject: Lauren Smith's Bibliography, Part V

VALI85
Valiant L.G.
Deductive Learning
in HOA85a
1985

VANE76a *
Van Emden M.
Verification Conditions As Programs
Proceedings 3rd International Colloquium on Automata
Languages and Programming
pp 99-119
Edinburgh University Press, 1976

VANE76b *
Van Emden M. & Kowalski R.A
The Semantics of Predicate Logic As a Programming Language
Journal of the ACM, Vol 23, No 4, pp 733-742
October 1976

VANE84a *
Van Emden M.H. & Lloyd J.W.
A Logical Reconstruction Of PrologII
Journal of Logic Programming, Vol 1, No 2, pp 143-150
August 1984

VANE86a *
Van Emden M.H. & Yukawa K.
Equational Logic Programming
Technical Report CS-86-05
Department of Computer Science, University of Waterloo
March 1986

VARD86a *
Vardi M.Y.
Automata-Theoretic Techniques for Modal Logics of Programs
Journal of Computer and System Sciences, 32, pp 183-221
1986

VASE?? *
Vasey P.
Qualified Answers And Their Application To Transformation
To Be Presented At Third International Conference On Logic
Programming,
Imperial College, July 14-18, 1986

VASS85a *
Access to Specific Declarative Knowledge by Expert Systems:
The Impact of Logic Programming
Decision Support Systems 1, pp 123-141
April 1985

VEGD84a
Vegdahl S.R.
A Survey of Proposed Architectures for the Execution of
Functional Languages
IEEE TOC C-33 No12, Dec 1984, p1050-1071

VICK86a *
Vickers S.
The Domain of P-Adic Integers
Dept of Computing, Imperial College
Overhead slides for talk presented at BTSCC '86 at Warwick
University
1986

VODA85a *
Voda P.J.
A View of Programming Languages as Symbiosis of Meaning
and Computations
New Generation Computing, 3, pp 71-100
1985

VUIL74a *
Vuillemin J.
Correct and Optimal Implementation of Recursion In A
Simple Programming Language
J. Comp. Sys., 9, no 3, pp 332-354
1974

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

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