We present a complete set of staging transformations for translating a class of interpreters into compilers and ex-ecutors. Staging transformation is the general process of separating stages or phases of a computation based on the availability of data. While encompassing partial evaluation, staging techniques can be more general, allowing for more powerful and flexible transformation strategies. We employ a particular strategy called pass separation that takes a pro-gram p and constructs a pair of programs pl, pz such that P(Z, Y) = P2(P1 (~), v) for all $, y. We apply this method in a restricted setting in which interpreters are described by abstract machines. For an interpreter p the pass separation constructs programs pI and P2 correspo...
Abstract: In previous work we showed how to verify a compiler for a small language with exceptions. ...
AbstractA number of constituents of a methodology for the systematic design of abstract machines for...
A methodology is described for generating provably correct compilers from denotational definitions ...
High level data structures are a cornerstone of modern programming and at the same time stand in the...
Dependent types and multi-stage programming have both been used, separately, in programming language...
Interpreters and compilers are two different ways of implementing programming languages. An interpre...
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as...
Staging is a programming technique for dividing the computation in order to exploit the early availa...
We present a system, that generates a compiler and abstract machine from a Natural Semantics specifi...
machine. Then, the dynamic semantic algebras are grouped to form a dedicated abstract machine which ...
A key problem in retargeting a compiler is to map the compiler's intermediate representation to the ...
We consider the problem of mechanically constructing abstract machines from operational semantics, p...
The concepts of interpretive simulation of one machine by another and of direct translation of compu...
AbstractCurrent methodology for compiler construction evolved in small increments over a long period...
The project investigates the use of Abstract State Machine in the process of computer program compil...
Abstract: In previous work we showed how to verify a compiler for a small language with exceptions. ...
AbstractA number of constituents of a methodology for the systematic design of abstract machines for...
A methodology is described for generating provably correct compilers from denotational definitions ...
High level data structures are a cornerstone of modern programming and at the same time stand in the...
Dependent types and multi-stage programming have both been used, separately, in programming language...
Interpreters and compilers are two different ways of implementing programming languages. An interpre...
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as...
Staging is a programming technique for dividing the computation in order to exploit the early availa...
We present a system, that generates a compiler and abstract machine from a Natural Semantics specifi...
machine. Then, the dynamic semantic algebras are grouped to form a dedicated abstract machine which ...
A key problem in retargeting a compiler is to map the compiler's intermediate representation to the ...
We consider the problem of mechanically constructing abstract machines from operational semantics, p...
The concepts of interpretive simulation of one machine by another and of direct translation of compu...
AbstractCurrent methodology for compiler construction evolved in small increments over a long period...
The project investigates the use of Abstract State Machine in the process of computer program compil...
Abstract: In previous work we showed how to verify a compiler for a small language with exceptions. ...
AbstractA number of constituents of a methodology for the systematic design of abstract machines for...
A methodology is described for generating provably correct compilers from denotational definitions ...