BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Beyond Polarity: Towards A Multi-Discipline Intermediate Language 
 with Sharing - Paul Downen\, University of Oregon
DTSTART:20180911T130000Z
DTEND:20180911T140000Z
UID:TALK109561@talks.cam.ac.uk
CONTACT:Victor Gomes
DESCRIPTION:Finding a universal intermediate language suitable for compili
 ng and\noptimizing both strict and lazy functional programs has been a lon
 g-sought\nholy grail for compiler writers.  There have been several distin
 ct\napproaches to designing a core language that's expressive enough to do
  the\njob\, including continuation-passing style (CPS)\, monadic\, and adj
 unctive\nlanguages.  Each of these three styles gives the program explicit
  control\nover evaluation order.  In the most extreme case\, adjunctive la
 nguages\, in\nthe form of either call-by-push-value or polarity\, contain 
 *both*\ncall-by-value and call-by-name fragments.  This split creates a hy
 brid\nlanguage which can faithfully represent complex types of program str
 uctures\nin terms of simple parts.\n\nHowever\, the polarized dichotomy be
 tween call-by-value and call-by-name\nprograms is\, by definition\, binary
  and leaves out any other possibility.\nFor example\, in practice lazy fun
 ctional languages are implemented\nefficiently using a third option\, call
 -by-need evaluation\, which shares the\nwork done while executing a progra
 m so that answers do not need to be\nrecomputed more than once.  This talk
  will discuss how to go beyond the\nbinary polarity to include three (or m
 ore) basic evaluation mechanisms\,\ncalled disciplines.  Multi-discipline 
 evaluation enriches adjunctive\nlanguages with an explicit notion of shari
 ng in order to serve as a\npractical core language for both strict and laz
 y functional programs.
LOCATION:FW26
END:VEVENT
END:VCALENDAR
