PROLOG-REQUEST@SU-SCORE.ARPA (Chuck Restivo, The Moderator) (11/20/86)
PROLOG Digest Thursday, 20 Nov 1986 Volume 4 : Issue 76
Today's Topics:
Pragmatics - Specifying circuits,
LP Library - Correction & Apology,
& Declarative Language Bibliography, Part W
----------------------------------------------------------------------
Date: Thu 13 Nov 86 14:44:22-PST
From: Ehud Shapiro <UDI@Score.Stanford.EDU>
Subject: Specifying circuits
John McCarthy pointed out to me a problem in the
circuit definition on page 23 in the "Art of Prolog".
The definition does not enforce the uniqueness of
ports, so that the circuit may contain short-circuits
(in the electrical sense, not the Concurrent Prolog
sense). After some discussions with him and with
Vladimir Lifschitz, and following up on an idea of
Vladimir, I came up with the following solution.
/*
Specifying circuits
Extending Program 2.2, Page 23, in the Art of Prolog
*/
% Base relations remain the same
/*
Compound elements:
The basic approach is that every compound elements
be defined as follows:
element(Ports,Internal) :-
subelement1(Ports1,Internal1),
subelement2(Ports2,Internal2),
....
subelementn(Portsn,Internaln),
Ports+Internal=Ports1+Internal1+...+Portsn
+Internaln,
distinct(Ports+Internal),
Where + is multiset union.
Note: this approach guarantees only internal consistency
of circuits. If there other other elements connected
to internal ports in the circuit, this fact will not be
detected by the current program, unless the component
verified is the entire circuit.
*/
inverter([Input,Output],[]) :-
transitor(Input,ground,Output),
resistor(power,Output),
distinct([Input,Output]).
nand_gate([Input1,Input2,Output],[X]) :-
transistor(Input1,X,Output),
transistor(Input2,ground,X),
resistor(power,Output),
distinct([Input1,Input2,Output,X]).
and_gate([Input1,Input2,Output],[X1,X2]) :-
nand_gate([Input1,Input2,X1],[X2]),
inverter(X1,Output),
distinct([Input1,Input2,Output,X1,X2]).
distinct([X|Xs]) :- not member(X,Xs), distinct(Xs).
distinct([]).
/*
Note: In these simple examples the lists were constructed
"manually", but in more complex cases they can be appended,
to construct the list of Internal ports of the compound
element, and the union of all ports in the element.
*/
------------------------------
Date: Tue, 18 Nov 86 17:52:42 PDT
From: Chuck Restivo <Restivo@SCORE.STANFORD.EDU>
Subject: Prolog prover
I incorrectly referred to David Plaisted as Plaistaid in a recent
issue - my apologies to David and to people who may have been trying
to transfer his files from <Prolog>.
------------------------------
Date: Wed 19 Nov 86 19:35:50-PST
From: Chuck Restivo <Restivo@Score.Stanford.EDU>
Subject: Lauren Smith's Bibliography, Part W
WADA86a *
ed. Wada E.
Logic Programming '85
Proceedings of the 4th Conference
Tokyo, Japan, July 1985
Lecture Notes in Computer Science, Vol 221
Springer Verlag
1986
WADG85a
Wadge W.W. & Ashcroft E.A.
Lucid, The Dataflow Programming Language
Apic Studies in Data Processing no. 22
Academic Press, 1985
WADL76a
Wadler P.L.
Analysis of an Algorithm for Real Time Garbage Collection
Comm ACM Vol 19 No 9 p491-500 Sept 1976
WADL84a *
Wadler P.
Listlessness is Better Than Laziness: Lazy Evaluation
and Garbage Collection at Compile-Time
Proceedings ACM Symposium on LISP and Functional
Programming, Austin, Texas
August 1984
WADL84b *
Wadler P.
Listlessness is Better Than Laziness
PhD Dissertation, Carnegie-Mellon University
August 1984
WADL85a *
Wadler P.
A Splitting Headache : Strict vs Lazy Semantics for
Pattern Matching in Lazy Languages
Oxford University, Computing Laboratory
January 1985
Addenda November 1985
WADL85b *
Wadler P.
An Introduction to Orwell (DRAFT)
Oxford University, Computing Laboratory
1 April 1985
revised December 1985
WADL85c
Wadler P.
Listlessness is Better Than Laziness II: Composing
Listless Functions
Workshop on Programs as Data Objects, Copenhagen
October 1985
( To be published as LNCS by Springer-Verlag )
WADL85d *
Wadler P.
Strictness Analysis on Non-Flat Domains (By Abstract
Interpretation Over Finite Domains)
Programming Research Group, Oxford University
10 November 1985
WADL86a *
Plumbers and dustmen: Fixing a space leak with a
garbage collector posted to fp@uea.sp
1986
WADS71a
Wadsworth C.P.
Semantics and Pragmatics of The Lambda Calculus
D.Phil Thesis, Univ. of Oxford
1971
WADS84a *
Wadsworth C.P.
Report on the IOTA Programming System and other Japanese
Advanced Research
Rutherford Appleton Laboratory, RAL-84-090, August 1984
WAND79a *
Wand M.
Final Algebra Semantics and Data Type Extensions
Journal of Computer and System Sciences, 19, pp 27-44
1979
WARR77a
Warren D.H.D. & Pereira L.M. Pereira F.
PROLOG-The Language and its Implementation Compared
to LISP
Proc. Symp. on AI and Programming Languages, 1977
Sigplan 8(12) or Sigart 64 pp 109-115
WARR77b
Warren D.H.D.
Applied Logic - Its Use and Implementation as a
Programming Tool
Phd Dissertation
Dept of AI, Univ of Edinburgh
1977
WARR82a *
Warren D.H.D.
Higher Order Extensions to PROLOG: Are They Needed ?
in Machine Intelligence 10
(eds Hayes J.E. & Michie D. & Pao Y-H )
pp 441-454
Ellis Horwood Ltd
1982
WARR83a *
Warren D.H.D.
An Abstract Prolog Instruction set
Technical Note 309, SRI International
31 August 1983
WARR83b *
Warren D.H.D.
Applied Logic - Its Use And Implementation As A
Programming Tool
Technical Note 290, SRI International
June 1983
WARR84a *
Warren D.S. & Ahamad M. & Debray S.K. & Kale L.V.
Executing Distributed Prolog Programs On A Broadcast
Network
IEEE 1984 International Symposium on Logic Programming
pp 12-21
1984
WARR86a *
Warren D.H.D.
Prolog Implementation and Architecture
notes form tutorial given at 3rd International Logic
Programming Conference, Imperial College
14 July 1986
WATP84
Watson P.
A Functional Language Computer
Conversion Report Univ. of Manchester Sept 1984
WATP85a *
Watson P.
A Reference Count Garbage Collection Scheme For
Distributed Computers
Draft Document, Dept of Computer Science, Univ. of
Manchester, March 1985
WATP85b *
Watson P.
Report on Visit to the U.S.A.
Document, Dept of Computer Science, Univ of manchester,
April 1985
WATP85c *
Watson P.
Higher Order Functions in EFL
Document, Dept of Computer science, Univ. of Manchester,
24 May 1985
WATS79
Watson I. & Gurd J.
A Prototype Data Flow Computer With Token Labeling
Proc. Nat. Comp. Conf., Vol 48, pp 623-628
1979
WATS83a *
Watson I.
Functional Logic Programming
Document, Dept of Computer Science, Univ. of Manchester,
April 1983
WATS84a *
Watson I. (& Ashcroft A.)
A Demand Driven Dataflow Machine/Tagged Data-Driven
Reduction Machine
Document, Dept of Computer Science, Univ. of Manchester,
March 1984
WATS84b *
Watson I.
Another Model (And Machine)
Document, Dept of Computer Science, Univ. of Manchester,
May 1983
WATS84c *
Watson I.
Higher Order Functions
Document, Dept of Computer Science, Univ. of Manchester,
Aug 1984
WATS85a *
Watson I.
A Parallel SKI(BC) Combinators Model
Document, PMP/MU/IW/00005, Dept of Computer Science, Univ.
of Manchester,
March 1985
WATS85b *
Watson Ian & Watson Paul & Woods Viv
Parallel Data-Driven Graph Reduction
Document, Dept. of Computer Science, Univ. of Manchester
IFIP TC-10 Working Conference on Fifth Generation Computer
Architecture,
UMIST, Manchester
July 15-18 1985
WATT86a *
Watt D.A.
Executable Semantic Descriptions
Software - Practise and Experience, Vol 16(1), pp 13-43
January 1986
WEIH85a *
Weihrauch K.
Type 2 Recursion Theory
Theoretical Computer Science 38, pp 17-33
May 1985
WHIT80a
White J.L.
Address/Memory Management for a Gigantic LISP Environment
or, GC Considered Harmful
Proc. 1980 LISP Conf. p119-127
WHITE78
Whitelock P.J.
A Conventional Language for Data Flow Computing
MSc Dissertation, Dept of Comp Sci, Univ. of Manchester,
October 1978
WILL80a
Williams J.H.
On The Development Of The Algebra Of Functional Programs
Report No RJ2983, IBM Research Laboratory, San Jose,
California, October 1980
WILL81a
Williams J.H.
Formal Representations For Recursively Defined Functional
Programs
in "Formalization Of Programmming Concepts",
Lecture Notes in Computer Science, no 107, Springer Verlag,
April 1981
WILL82a
Williams J.H.
Notes on The FP Style Of Functional Programming
in DARL82a
1982
WILL86a *
Williams M.H. & Chen G.
Translating Pascal For Execution On A Prolog-Based System
Computer Journal, Vol 29, No 3, pp 246-252
1986
WILN80a
Wilner W.
Recursive Machines
Xerox Parc Internal Report
1980
WILT86a *
Wiltink J.G.
Two Most Nondeterministic Programs
Science of Computer Programming, 6, pp 89-94
1986
WINS84
Winston P. & Horn K.P.
Lisp
Second Edition
Addison Wesley Publishing Company
1984
WINS? *
Winskel G.
Categories of Models for Concurrency
Computer Laboratory, University of Cambridge
Technical Report no 58
WINT80
WinterStein G. & Dausmann M. & Persch G.
Deriving Different Unification Algorithms From a
Specification in Logic
Proc. of Logic Programming workshop, Debrecen, Hungary
(ed S. -A. Tarnlund), pp 274-285
1980
WIRS82a
Wirsing M. & Broy M.
An Analysis of Semantic Models For Algebraic Specifications
in BROY82a, pp 351-412
1982
WISE79a
Wise D.S.
Morris's Garbage Compaction Algorithm Restores Referencr
Counts
ACM Trans. on Programming Languages and Systems, 1, no 1,
pp 115-122
1979
WISE82a
Wise D.S.
Interpreters For Functional Programming
in DARL82a
1982
WISE82b *
Wise M.J.
EPILOG = PROLOG + Data Flow : Arguments for Combining
PROLOG with a Data Driven Mechanism
ACM SIGPLAN Notices, Vol 17, No 12, pp 80-86
December 1982
WISE84a *
Wise M.J.
Concurrent Prolog on a Multiprocessor: A Critique of
Concurrent Prolog and Comparison with EPILOG
DSC Report 8403
Department of Computer Science, University of New South
Wales
January 9 1984
( Submitted to the Journal of Logic Programming )
WISE85a *
Wise M.J.
Experimenting with EPILOG: Some Results and Preliminary
Conclusions
DCS Report Number 8505
Department of Computer Science, University of New South
Wales
September 1985
( Accepted for 13th International Symposium on Computer
Architecture, Tokyo, 1986 )
WOLF83a *
Wolfram D.A. & Maher M.J. & Lassez J-L.
A Unified Treatment of Resolution Strategies For Logic
Programs Technical Report 83/12
Department of Computer Science, University of Melbourne
1983
WONG86a *
Wong W.G.
Arity prolog
Software review in Byte, volume 11, number 3, pp 245-248
March 1986
WONG86b *
Wong E. & Samson W.B.
The Specification Of A Relational Database (PRECI) As An
Abstract Data Type And Its Realisation In HOPE
Computer Journal, Vol 29, No 3, pp 261-268
1986
WORL85a
Worley J. & Arabe J. & Tu K.G.
The Architecture and Design of the Functional Programming
Machine Document, Computer Sci. Dept. , Univ. of California,
Los Angeles
------------------------------
End of PROLOG Digest
********************