Logic programming beyond Prolog
- đ¤ Speaker: Maarten van Emden ( University of Victoria, Canada)
- đ Date & Time: Thursday 09 October 2014, 14:00 - 15:00
- đ Venue: Seminar Room, Microsoft Research, Station Road, Cambridge
Abstract
A program in pure Prolog is an executable specification. For example, Quicksort in Prolog is a logical formula, yet shows creditable performance on long lists. But such executable specifications are a compromise: the logic is compromised by algorithmic considerations, yet only indirectly executable via an abstract machine.
This talk introduces relational programming, a method that solves the difficulty with Prolog programming by a separation of concerns. It requires writing three texts: (1) Axioms, a logical formula that specifies the problem and is not compromised by algorithmic considerations, (2) Theorem, a logical formula that expresses the algorithm, and (3) Code, a transcription of Theorem to C+. Correctness of Code relies on the logical justification of Theorem by Axioms and on a faithful transcription of Theorem to C+.
Sorting is an example where relational programming has the advantage of a higher degree of abstractness: the data to be sorted can be any C++ data type that satisfies the axioms of linear order, while the Prolog version is limited to the Herbrand universe. Another advantage of relational programs is that they can be shown to have a model-theoretic and fixpoint semantics equivalent to each other and analogous to those of pure Prolog programs.
Series This talk is part of the Computer Laboratory Automated Reasoning Group Lunches series.
Included in Lists
- All Talks (aka the CURE list)
- bld31
- Cambridge talks
- Computer Laboratory Automated Reasoning Group Lunches
- Department of Computer Science and Technology talks and seminars
- Interested Talks
- Martin's interesting talks
- School of Technology
- Seminar Room, Microsoft Research, Station Road, Cambridge
- Trust & Technology Initiative - interesting events
- yk373's list
- yk449
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)


Thursday 09 October 2014, 14:00-15:00