Back to Search Start Over

The Logical Abstract Machine: A Curry-Howard Isomorphism for Machine Code.

Authors :
Middeldorp, Aart
Sato, Taisuke
Ohori, Atsushi
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