University of Cambridge > Talks.cam > Computer Laboratory Automated Reasoning Group Lunches > Logic programming beyond Prolog

Logic programming beyond Prolog

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Alan Mycroft.

This is a MSR Seminar (Station Road), duplicated on the ARG list

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.

This talk is part of the Computer Laboratory Automated Reasoning Group Lunches series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2024 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity