Bahr and Hutton recently developed a new approach to calculating correct compilers directly from specifications of their correctness. However, the methodology only considers \emph{converging} behaviour of the source language, which means that the compiler could potentially produce arbitrary, erroneous code for source programs that diverge. In this article, we show how the methodology can naturally be extended to support the calculation of compilers that address both convergent and divergent behaviour \emph{simultaneously}, without the need for separate reasoning for each aspect. Our approach is based on the use of the partiality monad to make divergence explicit, together with the use of strong bisimilarity to support equational-style calculations, but also generalises to other forms of effect by changing the underlying monad.
Wed 14 SepDisplayed time zone: Belgrade, Bratislava, Budapest, Ljubljana, Prague change
13:40 - 15:20 | Programming and Reasoning About EffectsICFP Papers and Events at Linhart Chair(s): William J. Bowman University of British Columbia | ||
13:40 20mTalk | Monadic Compiler CalculationFunctional Pearl ICFP Papers and Events DOI | ||
14:00 20mTalk | Formal Reasoning About Layered Monadic Interpreters ICFP Papers and Events Irene Yoon University of Pennsylvania, Yannick Zakowski Inria, Steve Zdancewic University of Pennsylvania DOI | ||
14:20 20mTalk | Program Adverbs and Tlön EmbeddingsDistinguished PaperVirtual ICFP Papers and Events DOI Pre-print | ||
14:40 20mTalk | Flexible presentations of graded monads ICFP Papers and Events Shin-ya Katsumata National Institute of Informatics, Dylan McDermott Reykjavik University, Tarmo Uustalu Reykjavik University, Nicolas Wu Imperial College London DOI | ||
15:00 20mTalk | Fusing Industry and Academia at GitHubExperience Report ICFP Papers and Events Patrick Thomson GitHub, Rob Rix GitHub, Inc., Tom Schrijvers KU Leuven, Nicolas Wu Imperial College London DOI |