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:TALK53851@talks.cam.ac.uk
CONTACT:Alan Mycroft
DESCRIPTION: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 compro
 mise: the logic is compromised by algorithmic considerations\, yet only in
 directly executable via an abstract machine.\n\nThis talk introduces relat
 ional programming\, a method that solves the difficulty with Prolog progra
 mming by a separation of concerns.  It requires writing three texts: (1) A
 xioms\, a logical formula that specifies the problem and is not compromise
 d by algorithmic considerations\, (2) Theorem\, a logical formula that exp
 resses the algorithm\, and (3) Code\, a transcription of Theorem to C++. \
 nCorrectness of Code relies on the logical justification of Theorem by Axi
 oms and on a faithful transcription of Theorem to C++.\n\nSorting is an ex
 ample where relational programming has the advantage of a higher degree of
  abstractness: the data to be sorted can be any C++ data type that satisfi
 es 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 t
 o each other and analogous to those of pure Prolog programs.
LOCATION:Seminar Room\, Microsoft Research\, Station Road\, Cambridge
END:VEVENT
END:VCALENDAR
