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:TALK53854@talks.cam.ac.uk
CONTACT:Microsoft Research Cambridge Talks Admins
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 compr
 omise: the logic is compromised by algorithmic considerations\, yet only i
 ndirectly executable via an abstract machine.\n\nThis talk introduces rela
 tional programming\, a method that solves the difficulty with Prolog progr
 amming by a separation of concerns.  It requires writing three texts: (1) 
 Axioms\, a logical formula that specifies the problem and is not compromis
 ed by algorithmic considerations\, (2) Theorem\, a logical formula that ex
 presses the algorithm\, and (3) Code\, a transcription of Theorem to C++. 
 Correctness of Code relies on the logical justification of Theorem by Axio
 ms and on a \nfaithful transcription of Theorem to C++.\n\nSorting is an e
 xample where relational programming has the advantage of a higher degree o
 f abstractness: the data to be sorted can be any C++ data type that satisf
 ies the axioms of linear order\, while the Prolog version is limited to th
 e 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.\n
LOCATION:Auditorium\, Microsoft Research Ltd\, 21 Station Road\, Cambridge
 \, CB1 2FB
END:VEVENT
END:VCALENDAR
