The next 700 compiler correctness theorems (functional pearl)

30Citations
Citations of this article
21Readers
Mendeley users who have this article in their library.

Abstract

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. There has been much recent work on more realistic łcompositionalž compiler correctness aimed at proving correct compilation of components while supporting linking with components compiled from different languages using different compilers. However, 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.

Author supplied keywords

Cite

CITATION STYLE

APA

Patterson, D., & Ahmed, A. (2019). The next 700 compiler correctness theorems (functional pearl). Proceedings of the ACM on Programming Languages, 3(ICFP). https://doi.org/10.1145/3341689

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free