Abstract
This article develops a proof theory for low-level code languages. We first define a proof system, which we refer to as the sequential sequent calculus, and show that it enjoys the cut elimination property and that its expressive power is the same as that of the natural deduction proof system. We then establish the Curry-Howard isomorphism between this proof system and a low-level code language by showing the following properties: (1) the set of proofs and the set of typed codes is in one-to-one correspondence, (2) the operational semantics of the code language is directly derived from the cut elimination procedure of the proof system, and (3) compilation and decompilation algorithms between the code language and the typed lambda calculus are extracted from the proof transformations between the sequential sequent calculus and the natural deduction proof system. This logical framework serves as a basis for the development of type systems of various low-level code languages, type-preserving compilation, and static code analysis.
- Abramsky, S. 1993. Computational interpretation of linear logic. Theor. Comput. Sci. 3, 57, 3--57. Google Scholar
Digital Library
- Cousineau, G., Curien, P.-L., and Mauny, M. 1987. The categorical abstract machine. Sci. Comput. Program. 8, 2, 173--202. Google Scholar
Digital Library
- Curry, H. B. and Feys, R. 1968. Combinatory Logic. Vol. 1. North-Holland, Amsterdam.Google Scholar
- Flanagan, C., Sabry, A., Duba, B., and Felleisen, M. 1993. The essence of compiling with continuation. In Proceedings of the ACM PLDI Conference. ACM, New York, 237--247. Google Scholar
Digital Library
- Freund, S. and Mitchell, J. 2003. A type system for the Java bytecode language and verifier. J. Automat. Reason. 30, 3--4, 271--321. Google Scholar
Digital Library
- Gallier, J. 1993. Constructive logics part I: A tutorial on proof systems and typed λ-calculi. Theor. Comput. Sci. 110, 249--339. Google Scholar
Digital Library
- Gentzen, G. 1969. Investigation into logical deduction. In The Collected Papers of Gerhard Gentzen, M. Szabo, Ed. North-Holland, Amsterdam.Google Scholar
- Girard, J., Lafont, Y., and Taylor, P. 1989. Proofs and Types. Cambridge University Press, Cambridge, UK. Google Scholar
Digital Library
- Girard, J.-Y. 1987. Linear logic. Theor. Comput. Sci. 50, 1, 1--102. Google Scholar
Digital Library
- Griffin, T. 1990. A formulae-as-types notion of control. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, New York, 47--58. Google Scholar
Digital Library
- Higuchi, T. and Ohori, A. 2002. Java bytecode as a typed term calculus. In Proceedings of the International Conference on Principles and Practice of Declarative Programming. ACM, New York, 201--211. Google Scholar
Digital Library
- Higuchi, T. and Ohori, A. 2007. A static type system for jvm access control. ACM Trans. Program. Lang. Syst. 29, 1, article 4. Google Scholar
Digital Library
- Howard, W. 1980. The formulae-as-types notion of construction. In To H. B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism. Academic Press, 476--490.Google Scholar
- Katsumata, S. and Ohori, A. 2001. Proof-directed de-compilation of low-level code. In Proceedings of the European Symposium on Programming. Lecture Notes in Computer Science, vol. 2028. Springer-Verlag, Berlin, 352--366. Google Scholar
Digital Library
- Kleene, S. 1952. Introduction to Metamathematics, 7th Ed. North-Holland, Amsterdam.Google Scholar
- Lambek, J. 1980. From λ-calculus to cartesian closed categories. In To H. B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism. Academic Press, 375--402.Google Scholar
- Landin, P. J. 1964. The mechanical evaluation of expressions. Comput. J. 6, 308--320.Google Scholar
Cross Ref
- Minamide, Y., Morrisett, J. G., and Harper, R. 1996. Typed closure conversion. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, New York, 271--283. Google Scholar
Digital Library
- Mitchell, J. 1996. Foundations for Programming Languages. MIT Press, Boston, MA. Google Scholar
Digital Library
- Morrisett, G., Crary, K., Glew, N., and Walker, D. 1998. Stack-based typed assembly language. In Proceedings of the International Workshop on Types in Compilation. Lecture Notes in Computer Science, vol. 1473. Springer-Verlag, Berlin, 28--52. Google Scholar
Digital Library
- Morrisett, G., Walker, D., Crary, K., and Glew, N. 1998. From system F to typed assembly language. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, New York, 85--7. Google Scholar
Digital Library
- O'Hearn, P. and Pym, D. 1999. The logic of bunched implications. Bull. Sym. Logic 5, 2, 215--244.Google Scholar
Cross Ref
- Ohori, A. 1999. A Curry-Howard isomorphism for compilation and program execution. In Proceedings of the Typed Lambda Calculi and Applications. Lecture Notes in Computer Science, vol. 1581. Springer-Verlag, Berlin, 258--179. Google Scholar
Digital Library
- Ohori, A. 2004. Register allocation by proof transformation. J. Sci. Comput. Program. 50, 1--3, 161--187. Google Scholar
Digital Library
- Ono, H. and Komori, Y. 1985. Logics without the contraction rule. J. Symb. Logic 50, 1, 169--201.Google Scholar
Cross Ref
- Parigot, M. 1992. λμ-calculus: an alorithmic interpretation of classical natural deduction. In Proceedings of the Logic Programming and Automated Reasoning. Lecture Notes in Computer Science, vol. 624. Springer-Verlag, Berlin, 190--201. Google Scholar
Digital Library
- Raffalli, C. 1994. Machine deduction. In Proceedings of the Types for Proofs and Program. Lecture Notes in Computer Science, vol. 806. Springer-Verlag, Berlin, 333--351. Google Scholar
Digital Library
- Skalka, S. and Smith, S. 2000. Static enforcement of security with types. In Proceedings of the International Conference on Functional Programming (ICFP). ACM, New York, 34--45. Google Scholar
Digital Library
- Stata, R. and Abadi, M. 1998. A type system for Java bytecode subroutines. In Proceedings of the ACM Symposium on Principles of Programming Languages. ACM, New York, 149--160. Google Scholar
Digital Library
- Tait, W. 1966. Intensional interpretations of functionals of finite type i. J. Symb. Logic 32, 2, 198--212.Google Scholar
Cross Ref
- Turner, D. 1979. A new implementation technique for applicative languages. Softw. Pract. Exper. 9, 31--49.Google Scholar
- Wadler, P. 1990. Linear types can change the world! In Progarmming Concepts and Methods, IFIP TC 2 Working Conference. M. Broy and C. Jones, Eds. North Holland, 561--581.Google Scholar
Index Terms
A proof theory for machine code
Recommendations
Investigations on the Dual Calculus
The Dual Calculus, proposed recently by Wadler, is the outcome of two distinct lines of research in theoretical computer science: (A) Efforts to extend the Curry-Howard isomorphism, established between the simply-typed lambda calculus and intuitionistic ...
The Linear Logical Abstract Machine
We derive an abstract machine from the Curry-Howard correspondence with a sequent calculus presentation of Intuitionistic Propositional Linear Logic. The states of the register based abstract machine comprise a low-level code block, a register bank and ...
Proof nets and the call-by-value λ-calculus
This paper gives a detailed account of the relationship between (a variant of) the call-by-value lambda calculus and linear logic proof nets. The presentation is carefully tuned in order to realize an isomorphism between the two systems: every single ...






Comments