Back to Search
Start Over
The Logical Abstract Machine: A Curry-Howard Isomorphism for Machine Code.
- Source :
- Functional & Logic Programming; 1999, p300-318, 19p
- Publication Year :
- 1999
-
Abstract
- This paper presents a logical framework for low-level machine code and code generation. We first define a calculus, called sequential sequent calculus, of intuitionistic propositional logic. A proof of the calculus only contains left rules and has a linear (non-branching) structure, which reflects the properties of sequential machine code. We then establish a Curry-Howard isomorphism between this proof system and machine code based on the following observation. An ordinary machine instruction corresponds to a polymorphic proof transformer that extends a given proof with one inference step. A return instruction, which turns a sequence of instructions into a program, corresponds to a logical axiom (an initial proof tree). Sequential execution of code corresponds to transforming a proof to a smaller one by successively eliminating the last inference step. This logical correspondence enables us to present and analyze various low-level implementation processes of a functional language within the logical framework. For example, a code generation algorithm for the lambda calculus is extracted from a proof of the equivalence theorem between the natural deduction and the sequential sequent calculus. [ABSTRACT FROM AUTHOR]
Details
- Language :
- English
- ISBNs :
- 9783540666776
- Database :
- Supplemental Index
- Journal :
- Functional & Logic Programming
- Publication Type :
- Book
- Accession number :
- 32903935
- Full Text :
- https://doi.org/10.1007/10705424_20