Logic for problem-solving
A Machine-Oriented Logic Based on the Resolution Principle
Journal of the ACM (JACM)
LISP 1.5 Programmer's Manual
Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
The EXODUS optimizer generator
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
IEEE Transactions on Software Engineering
Unification: a multidisciplinary survey
ACM Computing Surveys (CSUR)
Dynamic query evaluation plans
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
EQL: The Language and its Implementation
IEEE Transactions on Software Engineering
Data structures and algorithms for disjoint set union problems
ACM Computing Surveys (CSUR)
Notes on implementing sets in Prolog
Communications of the ACM
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Equal rights for functional objects or, the more things change, the more they are the same
ACM SIGPLAN OOPS Messenger
PLEIADES: an object management system for software engineering environments
SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
The architecture of the EXODUS extensible DBMS
OODS '86 Proceedings on the 1986 international workshop on Object-oriented database systems
A comparison of Lisp, Prolog, and Ada programming productivity in AI area
ICSE '85 Proceedings of the 8th international conference on Software engineering
On database systems development through logic
ACM Transactions on Database Systems (TODS)
Equations, sets, and reduction semantics for functional and logic programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
PROLOG applications for database design with the information center
CSC '85 Proceedings of the 1985 ACM thirteenth annual conference on Computer Science
Concurrent programming in Orient84/K: an object-oriented knowledge representation language
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Knowledge-based query processing in object bases
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
Design of a high-speed Prolog machine (HPM)
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
Surveyor's Forum: Determining a Search
ACM Computing Surveys (CSUR)
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Relating sentences and semantic networks with procedural logic
Communications of the ACM
Communications of the ACM
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computational Logic: Memories of the Past and Challenges for the Future
CL '00 Proceedings of the First International Conference on Computational Logic
Pattern driven lazy reduction: A unifying evaluation mechanism for functional and logic programs
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Adaptive interpretation as a means of exploiting complex instruction sets
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
A parallel execution model of logic programs
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Mod-PROLOG, a modular, microcomputer oriented PROLOG
SIGSMALL '83 Proceedings of the 1983 ACM SIGSMALL symposium on Personal and small computers
Parallel interpretation of logic programs
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Compiling prolog programs for parallel execution on a cellular machine
ACM '84 Proceedings of the 1984 annual conference of the ACM on The fifth generation challenge
ACM '79 Proceedings of the 1979 annual conference
ACM SIGPLAN Notices
Translating Spanish into logic through logic
Computational Linguistics
An efficient easily adaptable system for interpreting natural language queries
Computational Linguistics
Meta-rules as a basis for processing ill-formed input
Computational Linguistics - Special issue on ill-formed input
Issues in natural language access to databases from a logic programming perspective
ACL '82 Proceedings of the 20th annual meeting on Association for Computational Linguistics
An informal approach to formal specifications
ACM SIGMOD Record
An informal approach to formal specifications
ACM SIGMOD Record
ACM SIGART Bulletin
History of programming languages---II
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
IEEE Transactions on Computers
The design of a system for designing knowledge representation systems
IJCAI'81 Proceedings of the 7th international joint conference on Artificial intelligence - Volume 1
Predicate logic: a calculus for deriving programs
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 1
Prolog for applications programming
IBM Systems Journal
Non-deterministic lisp with dependency-directed backtracking
AAAI'87 Proceedings of the sixth National conference on Artificial intelligence - Volume 1
Non-deterministic lisp with dependency-directed backtracking
AAAI'87 Proceedings of the sixth National conference on Artificial intelligence - Volume 1
Algorithms and theory of computation handbook
Sal/Svm: an assembly language and virtual machine for computing with non-enumerated sets
Virtual Machines and Intermediate Languages
Logic Java: combining object-oriented and logic programming
WFLP'11 Proceedings of the 20th international conference on Functional and constraint logic programming
The problem of asking the minimum number of questions in horn clause systems
Mathematical and Computer Modelling: An International Journal
Foundations of rule-based query answering
RW'07 Proceedings of the Third international summer school conference on Reasoning Web
Alan Turing and the development of Artificial Intelligence
AI Communications - ECAI 2012 Turing and Anniversary Track
Hi-index | 0.05 |
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.