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