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 ********************