BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Logic programming beyond Prolog - Maarten van Emden ( University o
 f Victoria\, Canada)
DTSTART:20141009T130000Z
DTEND:20141009T140000Z
UID:TALK53861@talks.cam.ac.uk
CONTACT:Alan Mycroft
DESCRIPTION:A program in pure Prolog is an executable specification. For e
 xample\, Quicksort in Prolog is a logical formula\, yet shows creditable p
 erformance on long lists. But such executable specifications are a comprom
 ise: the logic is compromised by algorithmic considerations\, yet only ind
 irectly executable via an abstract machine.\n\nThis talk introduces relati
 onal programming\, a method that solves the difficulty with Prolog program
 ming by a separation of concerns. It requires writing three texts: (1) Axi
 oms\, a logical formula that specifies the problem and is not compromised 
 by algorithmic considerations\, (2) Theorem\, a logical formula that expre
 sses the algorithm\, and (3) Code\, a transcription of Theorem to C++. Cor
 rectness of Code relies on the logical justification of Theorem by Axioms 
 and on a faithful transcription of Theorem to C++.\n\nSorting is an exampl
 e where relational programming has the advantage of a higher degree of abs
 tractness: the data to be sorted can be any C++ data type that satisfies t
 he axioms of linear order\, while the Prolog version is limited to the Her
 brand universe. Another advantage of relational programs is that they can 
 be shown to have a model-theoretic and fixpoint semantics equivalent to ea
 ch other and analogous to those of pure Prolog programs.
LOCATION:Seminar Room\, Microsoft Research\, Station Road\, Cambridge
END:VEVENT
END:VCALENDAR
