The Next 700 Compiler Correctness Theorems. A Functional Pearl.
Compiler correctness is an old problem, with results stretching back beyond the last half-century. Founding the field, John McCarthy and James Painter set out to build a “completely trustworthy compiler”. And yet, until quite recently, even despite truly impressive verification efforts, the theorems being proved were only about the compilation of whole programs, a theoretically quite appealing but practically unrealistic simplification. For a compiler correctness theorem to assure complete trust, the theorem must reflect the reality of how the compiler will be used.
While there’s been much recent work on more realistic “compositional” compiler correctness, the variety of theorems, stated in remarkably different ways, raises questions about what researchers even mean by a “compiler is correct.”
In this pearl, we develop a new framework with which to understand compiler correctness theorems in the presence of linking, and apply it to understanding and comparing this diversity of results. In doing so, not only are we better able to assess their relative strengths and weaknesses, but gain insight into what we as a community should expect from compiler correctness theorems of the future.
Mon 19 AugDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:00
|Narcissus: Correct-By-Construction Derivation of Decoders and Encoders from Binary Formats|
Benjamin Delaware Purdue University, Sorawit Suriyakarn , Clément Pit-Claudel MIT CSAIL, Qianchuan Ye Purdue University, Adam Chlipala Massachusetts Institute of TechnologyLink to publication DOI Authorizer link
|Closure Conversion is Safe for Space|
|Linear capabilities for fully abstract compilation of separation-logic-verified code|
|The Next 700 Compiler Correctness Theorems. A Functional Pearl.|