Book contents
- Frontmatter
- Contents
- Preface
- Part 1 Functions and Foundations
- Part 2 Procedures, Types, Memory Management, and Control
- Part 3 Modularity, Abstraction, and Object-Oriented Programming
- Part 4 Concurrency and Logic Programming
- 14 Concurrent and Distributed Programming
- 15 The Logic Programming Paradigm and Prolog
- Appendix A Additional Program Examples
- Glossary
- Index
15 - The Logic Programming Paradigm and Prolog
from Part 4 - Concurrency and Logic Programming
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Preface
- Part 1 Functions and Foundations
- Part 2 Procedures, Types, Memory Management, and Control
- Part 3 Modularity, Abstraction, and Object-Oriented Programming
- Part 4 Concurrency and Logic Programming
- 14 Concurrent and Distributed Programming
- 15 The Logic Programming Paradigm and Prolog
- Appendix A Additional Program Examples
- Glossary
- Index
Summary
HISTORY OF LOGIC PROGRAMMING
The logic programming paradigm has its roots in automated theorem proving from which it took the notion of a deduction. What is new is that in the process of deduction some values are computed. The creation of this programming paradigm is the outcome of a long history that for most of its course ran within logic and only later inside computer science. Logic programming is based on the syntax of first-order logic, which was originally proposed in the second half of nineteenth century by Gottlob Frege and later modified to the currently used form by Giuseppe Peano and Bertrand Russell.
In the 1930s, Kurt Gödel and Jacques Herbrand studied the notion of computability based on derivations. These works can be viewed as the origin of the “computation as deduction” paradigm. Additionally, Herbrand discussed in his doctoral thesis a set of rules for manipulating algebraic equations on terms that can be viewed now as a sketch of a unification algorithm. Some 30 years later, in 1965, Alan Robinson published his fundamental paper (Robinson 1965) that lies at the foundation of the field of automated deduction. In this paper, he introduced the resolution principle, the notion of unification, and a unification algorithm. Using the resolution method, one can prove theorems of first-order logic, but another step was needed to see how one could compute within this framework.
- Type
- Chapter
- Information
- Concepts in Programming Languages , pp. 475 - 508Publisher: Cambridge University PressPrint publication year: 2002