μετα 2008

First International Workshop on Metacomputation in Russia
 

July 2-5, 2008, Pereslavl-Zalessky (120 km to the north-east from Moscow), Russia

Home
Call For Papers
Submissions
Accepted Papers
Program
Important Dates
Registration
Visa Support
Place
Affiliated Meetings
Contacts
Sponsors

 

 

 

 

Interpretive Overhead and Optimal Specialisation. Or: Life without the Pending List (Workshop Version)

Lars Hartmann, Neil D. Jones and Jakob Grue Simonsen
 

Abstract

Full text pdf 277 KB

A self-interpreter and a program specialiser with the following characteristics are developed for a simple imperative language: 1) The self-interpreter runs with program-independent interpretive overhead; 2) the specialiser achieves optimal specialisation, that is, it eliminates all interpretation overhead; 3) the specialiser has been run on a variety of small and large programs, including specialising the selfinterpreter to itself; 4) all specialiser parts except for loop unfolding have been proven to terminate.

We achieve the above by using a structured language with separated control and data flow, containing loops but without while. The specialiser uses two-level binding-time annotations in a new way: source annotations are used to ensure correctness of specialised programs. A novelty: the specialiser has no need for a pending list, and does no call graph analysis of the residual program. A source-to-source normalisation phase does program transformations to avoid situations where the specialiser would need to specialise code based on an unknown state. A pruning phase e ciently achieves the e ect of Romanenko's arity raising.