scispace - formally typeset
Book ChapterDOI

On the Mechanics of Metasystem Hierarchies in Program Transformation

TLDR
This paper identifies and clarifies foundational issues involved in multi-level metasystem hierarchies and makes connections between logic programming and metacomputation.
Abstract
Self-applicable partial evaluators have been used for more than a decade for generating compilers and other program generators, but it seems hard to reason about the mechanics of hierarchies of program transformers and to describe applications that go beyond the ‘classical’ Futamura projections. This paper identifies and clarifies foundational issues involved in multi-level metasystem hierarchies. After studying the role of abstraction, encoding, and metasystem transition, the Futamura projections are reexamined and problems of their practical realization are discussed. Finally, preliminary results using a multi-level metaprogramming environment for self-application are reported. Connections between logic programming and metacomputation are made.

read more

Citations
More filters
Journal Article

An experiment in partial evaluation - the generation of a compiler generator

TL;DR: A running, non-trivial partial evaluator is described, which is the first which has been used in practice to transform interpreters into corresponding stand-alone compilers, or to generate a compile r generator by transforming itself.
Book ChapterDOI

A Roadmap to Metacomputation by Supercompilation

TL;DR: A complete supercompilation, including positive driving and generalization, is defined for a functional language and illustrated with examples and a taxonomy of related transformers is given and compared to the supercompiler.
Book ChapterDOI

Homeomorphic embedding for online termination of symbolic methods

TL;DR: A survey and discussion of the use of homeomorphic embedding in the context of metaprogramming and the advantages of such an approach over one using well-founded orders are discussed.
Book ChapterDOI

A Comparative Revisitation of Some Program Transformation Techniques

TL;DR: This work revisits the main techniques of program transformation and presents a methodology which underlines these techniques as a ‘common pattern of reasoning’ and explains the various correspondences which can be established among them.
Proceedings ArticleDOI

Jones optimality, binding-time improvements, and the strength of program specializers

TL;DR: The main results show that, regardless of the binding-time improvements which the authors apply to a source program, no matter how extensively, a specializer that is not Jones-optimal is strictly weaker than aSpecializer which is Jones optimal.
References
More filters
Book

Partial evaluation and automatic program generation

TL;DR: This paper presents a guide to the literature the self-applicable scheme specializer, a partial evaluator for a subset of scheme for a first-order functional languages.
Book

The art of Prolog

TL;DR: An example of the advantage of intertwining generating and testing can be seen with programs solving the N queens problem, which requires the placement of N pieces on an Nby-N rectangular board so that no two pieces are on the same line.
Journal ArticleDOI

Partial evaluation in logic programming

TL;DR: A theoretical foundation for partial evaluation in logic programming is given and it is shown that, unless strong conditions are imposed, the authors do not have completeness for the declarative semantics.
Journal ArticleDOI

The concept of a supercompiler

TL;DR: It is argued that the language Refal serves the needs of supercompilation best, and it is described and compared with the usual approach to program transformation as a stepwise application of a number of equivalence rules.
Book

The Gödel Programming Language

TL;DR: Part 1 Overview of Goedel: introduction types formulas equality and numbers modules various data types control input/output meta-programming example programs and description of polymorphic many-sorted logic.