ABSTRACT
The purpose of this paper is to advise an approach (and to support that advice by discussion of an example) towards achieving a goal first announced by John McCarthy: that compilers for higher-level programming languages should be made completely trustworthy by proving their correctness. The author believes that the compiler-correctness problem can be made much less general and better-structured than the unrestricted program-correctness problem; to do so will of course entail restricting what a compiler may be.
- G. Birkhoff and J. D. Lipson, "Heterogeneous Algebras", J. Combinatorial Theory 8, pp. 115-133 (1970).Google ScholarCross Ref
- R. M. Burstall and P. J. Landin, "Programs and Their Proofs: an Algebraic Approach", Machine Intelligence 4 (1969).Google Scholar
- D. Scott and C. Strachey, "Towards a Mathematical Semantics for Computer Languages", Programming Research Group Monograph PRG-6, Oxford Computing Laboratory (1971).Google Scholar
- P. J. Landin, "A Program-Machine Symmetric Automata Theory", Machine Intelligence 5 (1970).Google Scholar
- F. L. Morris, "Correctness of Translations of Programming Languages", Stanford Computer Science Memo CS 72-303 (1972).Google Scholar
- R. Milner and R. Weyhrauch, "Proving Compiler Correctness in a Mechanized Logic", Machine Intelligence 7 (1972).Google Scholar
- P. Hitchcock and D. Park, "Induction Rules and Proofs of Termination", Proc. Colloques IRIA Theorie des automates des langages et de la Programmation. Rocquencourt, France, July 1972.Google Scholar
- Advice on structuring compilers and proving them correct
Recommendations
An Internalist Approach to Correct-by-Construction Compilers
PPDP '18: Proceedings of the 20th International Symposium on Principles and Practice of Declarative ProgrammingIn this paper we present a methodology to organize the construction of a correct compiler, taking advantage of the power of full dependently type systems. The basic idea consists in decorating the abstract syntax of languages with their semantics, ...
Surgical precision JIT compilers
PLDI '14Just-in-time (JIT) compilation of running programs provides more optimization opportunities than offline compilation. Modern JIT compilers, such as those in virtual machines like Oracle's HotSpot for Java or Google's V8 for JavaScript, rely on dynamic ...
Surgical precision JIT compilers
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationJust-in-time (JIT) compilation of running programs provides more optimization opportunities than offline compilation. Modern JIT compilers, such as those in virtual machines like Oracle's HotSpot for Java or Google's V8 for JavaScript, rely on dynamic ...
Comments