Introduction
Published online by Cambridge University Press: 23 November 2009
Summary
The subject of this book is constraint logic programming, and we will present it using the open source programming system ECLiPSe, available at http://www.eclipse-clp.org. This approach to programming combines two programming paradigms: logic programming and constraint programming. So to explain it we first discuss the origins of these two programming paradigms.
Logic programming
Logic programming has roots in the influential approach to automated theorem proving based on the resolution method due to Alan Robinson. In his fundamental paper, Robinson [1965], he introduced the resolution principle, the notion of unification and a unification algorithm. Using his resolution method one can prove theorems formulated as formulas of first-order logic, so to get a ‘Yes’ or ‘No’ answer to a question. What is missing is the possibility to compute answers to a question.
The appropriate step to overcome this limitation was suggested by Robert Kowalski. In Kowalski [1974] he proposed a modified version of the resolution that deals with a a subset of first-order logic but allows one to generate a substitution that satisfies the original formula. This substitution can then be interpreted as a result of a computation. This approach became known as logic programming. A number of other proposals aiming to achieve the same goal, viz. to compute with the first-order logic, were proposed around the same time, but logic programming turned out to be the simplest one and most versatile.
In parallel, Alain Colmerauer with his colleagues worked on a programming language for natural language processing based on automated theorem proving.
- Type
- Chapter
- Information
- Constraint Logic Programming using Eclipse , pp. ix - xviPublisher: Cambridge University PressPrint publication year: 2006