Abstract
Much work has been done in verifying a compiler specification, both in hand-written and mechanical proofs. However, there is still a gap between a correct compiler specification and a correct compiler implementation. To fill this gap and obtain a correct compiler implementation, we take the approach of generating a compiler from its specification. We verified the correctness of a compiler specification with the theorem prover Isabelle/HOL, and generated a Standard ML code corresponding to the specification with Isabelle’s code generation facility. The generated compiler can be executed with some hand-written codes, and it compiles a small functional programming language into the Java virtual machine with several program transformations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Benton, N., Kennedy, A., Russell, G.: Compiling Standard ML to Java bytecodes. In: Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP 1998), vol. 34(1), pp. 129–140 (1999)
Berghofer, S., Nipkow, T.: Executing higher order logic. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) TYPES 2000. LNCS, vol. 2277, pp. 24–40. Springer, Heidelberg (2002)
Bothner, P.: Kawa—compiling dynamic languages to the Java VM. In: Proceedings of the USENIX, Technical Conference, FREENIX Track, New Orleans, LA, USENIX Association (1998)
Boyer, R.S., Moore, J.S.: A Computational Logic Handbook. Academic Press, London (1988)
Curzon, P.: A verified Vista implementation final report. Technical Report 311, University of Cambridge Computer Laboratory (1993)
Gordon, M.J.C., Melham, T.F.: Introduction to HOL: A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, Cambridge (1993)
Hannan, J.: A type system for closure conversion. In: Proceedings of the Workshop on Types for Program Analysis, pp. 48–62 (1995)
Klein, G., Nipkow, T.: Verified lightweight bytecode verification. Concurrency and Computation: Practice and Experience 13, 1133–1151 (2001)
Klein, G., Nipkow, T.: Verified bytecode verifiers. Theoretical Computer Science 298, 583–626 (2003)
Meyer, J.: Jasmin home page, http://mrl.nyu.edu/~meyer/jasmin/
Minamide, Y., Morrisett, J.G., Harper, R.: Typed closure conversion. In: Proceedings of Symposium on Principles of Programming Languages, pp. 271– 283 (1996)
Moore, J.S.: A mechanically verified language implementation. Technical Report 30, Computational Logic Inc. (1988)
Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL : A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)
Oliva, D.P., Ramsdell, J.D., Wand, M.: The VLISP verified PreScheme compiler. Lisp and Symbolic Computation 8(1/2), 111–182 (1995)
Owre, S., Shankar, N., Rushby, J.M., Stringer-Calvert, D.W.J.: PVS Language Reference. Computer Science Laboratory, SRI International, Menlo Park, CA (September 1999)
Stepney, S.: High Integrity Compilation: a case study. Prentice-Hall, Englewood Cliffs (1993)
Stringer-Calvert, D.W.: Mechanical Verification of Compiler Correctness. PhD thesis, Department of Computer Science, University of York (March 1998)
Wenzel, M.: Isar - a generic interpretative approach to readable formal proof documents. In: Proceedings of International Conference on Theorem Proving in Higher Order Logics, pp. 167–184 (1999)
Young, W.D.: A verified code generator for a subset of Gypsy. Technical Report 33, Computational Logic Inc. (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Okuma, K., Minamide, Y. (2003). Executing Verified Compiler Specification. In: Ohori, A. (eds) Programming Languages and Systems. APLAS 2003. Lecture Notes in Computer Science, vol 2895. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-40018-9_13
Download citation
DOI: https://doi.org/10.1007/978-3-540-40018-9_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20536-4
Online ISBN: 978-3-540-40018-9
eBook Packages: Springer Book Archive