Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Free access

Prolog - the language and its implementation compared with Lisp

Published: 01 August 1977 Publication History

Abstract

Prolog is a simple but powerful programming language founded on symbolic logic. The basic computational mechanism is a pattern matching process (“unification”) operating on general record structures (“terms” of logic). We briefly review the language and compare it especially with pure Lisp. The remainder of the paper discusses techniques for implementing Prolog efficiently; in particular we describe how to compile the patterns involved in the matching process. These techniques are as incorporated in our DECsystem-10 Prolog compiler (written in Prolog). The code it generates is comparable in speed with that produced by existing DEC10 Lisp compilers. We argue that pattern matching is a better method for expressing operations on structured data than conventional selectors and constructors - both for the user and for the implementor.

References

[1]
Battani G and Meloni H {1973} Interpreteur du language de programmation Prolog. Groupe d'Intelligence Artificielle, Marseille-Luminy, 1973
[2]
Boyer R S and Moore J S {1972} The sharing of structure in theorem proving programs. Machine Intelligence 7 (ed. Meltzer & Michie), Edinburgh U. Press, 1972.
[3]
Bruynooghe M {1976} An interpreter for predicate logic programs: Part 1. Report CW 10, Applied Maths & Programming Division, Katholieke Univ Leuven, Belgium, Oct 1976.
[4]
Colmerauer A {1975} Les grammaires de metamorphase. Groupe d'Intelligence Artificielle, Marseille, Marseille-Luminy, Nov 1975.
[5]
DEC {1974} DECsystem10 System Ref Manual (3rd edition) Digital Equipment Corporation, Maynard, Mass. Aug 1974.
[6]
van Emden M H {1975} Programming with resolution logic. Report CS-75-30, Dept. of Computer Science, University of Waterloo, Canada. Nov 1975.
[7]
Hoare C A R {1973} Recursive data structures. Stanford AI Memo 223, Calif. Oct 1973.
[8]
Kowalski R A {1974} Logic for problem solving. DCL Memo 75, Dept of AI, Edinburgh. Mar 1974.
[9]
McCarthy J et al. {1962} LISP 1.5 Programmer's Manual. MIT Press, MIT, Cambridge, Mass. Aug 1962.
[10]
Pereira L M {1977} User's Guide to DECsystem-10 Prolog. Forthcoming publication, Divisao de Informatica, Lab. Nac. de Engenharia Civil, Lisbon. 1977.
[11]
Robinson J A {1965} A machine-oriented logic based on the resolution principle. JACM vol 12, pp. 23-44. 1965.
[12]
Roussel P {1972} Definition et traitement de l'egalite formelle en demonstration automatique. These 3me. cycle, UER de Luminy, Marseille. 1972.
[13]
Roussel P {1975} Prolog: Manual de reference et d'utilisation. Groupe d'Intelligence Artificielle, Marseille-Luminy. Sep 1975.
[14]
Warren D H D {1977} Implementing Prolog - compiling predicate logic programs. Forthcoming report, Dept of AI, Edinburgh. 1977.
[15]
Weissman C {1976} Lisp 1.5 Primer. Dickenson Publishing Co. 1967.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGART Bulletin
ACM SIGART Bulletin Just Accepted
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
August 1977
179 pages
ISSN:0163-5719
DOI:10.1145/872736
Issue’s Table of Contents
  • cover image ACM Conferences
    Proceedings of the 1977 symposium on Artificial intelligence and programming languages
    August 1977
    185 pages
    ISBN:9781450378741
    DOI:10.1145/800228

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1977
Published in SIGAI , Issue 64

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)254
  • Downloads (Last 6 weeks)55
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2020)A Historical Account of My Early Research InterestsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.320.1320(1-28)Online publication date: 7-Aug-2020
  • (2020)Book reviewPrometheus10.13169/prometheus.36.4.038236:4Online publication date: 2020
  • (2019)Designing context-aware systems: A method for understanding and analysing context in practiceJournal of Logical and Algebraic Methods in Programming10.1016/j.jlamp.2018.11.003103(79-104)Online publication date: Feb-2019
  • (2018)Cognition-enabled robotic wiping: Representation, planning, execution, and interpretationRobotics and Autonomous Systems10.1016/j.robot.2018.11.018Online publication date: Dec-2018
  • (2015)Automated Data Structure Generation: Refuting Common Wisdom2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.26(32-43)Online publication date: May-2015
  • (2014)Alan Turing and the development of Artificial IntelligenceAI Communications10.5555/2594611.259461327:1(3-10)Online publication date: 1-Jan-2014
  • (2007)Foundations of Rule-Based Query AnsweringReasoning Web10.1007/978-3-540-74615-7_1(1-153)Online publication date: 2007
  • (2005)Prolegomena to logic programming for non-monotonic reasoningNon-Monotonic Extensions of Logic Programming10.1007/BFb0023799(1-36)Online publication date: 9-Jun-2005
  • (2000)Objects as Communicating Prolog UnitsECOOP’ 87 European Conference on Object-Oriented Programming10.1007/3-540-47891-4_17(181-191)Online publication date: 25-Aug-2000
  • (1992)REFERENCESNatural and Artificial Intelligence10.1016/B978-0-444-89081-8.50020-8(509-536)Online publication date: 1992
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media