Program transformation with metasystem transitions
- 1 July 1993
- journal article
- research article
- Published by Cambridge University Press (CUP) in Journal of Functional Programming
- Vol. 3 (3) , 283-313
- https://doi.org/10.1017/s0956796800000757
Abstract
A new program transformation method is presented. It is a further refinement of supercompilation where the supercompiler is not applied directly to the function to be transformed, but to a metafunction, namely an interpreter which computes this function using its definition and an abstract (i.e. including variables) input. It is shown that with this method such tranformations become possible which the direct application of the supercompiler cannot perform. Examples include the merging of iterative loops, function inversion, and transformation of deterministic into non-deterministic algorithms, and vice-versa.Keywords
This publication has 13 references indexed in Scilit:
- Unfolding — definition — folding, in this order, for avoiding unnecessary variables in logic programsPublished by Springer Nature ,1991
- Synthesis of eureka predicates for developing logic programsPublished by Springer Nature ,1990
- Mix: A self-applicable partial evaluator for experiments in compiler generationHigher-Order and Symbolic Computation, 1989
- A bibliography on partial evaluationACM SIGPLAN Notices, 1988
- The concept of a supercompilerACM Transactions on Programming Languages and Systems, 1986
- An experiment in partial evaluation: The generation of a compiler generatorLecture Notes in Computer Science, 1985
- Program Transformation SystemsACM Computing Surveys, 1983
- Using meta-level inference for selective application of multiple rewrite rule sets in algebraic manipulationArtificial Intelligence, 1981
- A Transformation System for Developing Recursive ProgramsJournal of the ACM, 1977
- Proving Theorems about LISP FunctionsJournal of the ACM, 1975