Proc. of a conference on Functional programming languages and computer architecture
The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Abstract interpretation of declarative languages
Abstract interpretation of declarative languages
Partial evaluation of pattern matching in strings
Information Processing Letters
Application of metasystem transition to function inversion and transformation
ISSAC '90 Proceedings of the international symposium on Symbolic and algebraic computation
Generalized partial computation for a lazy functional language
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Projection factorisations in partial evaluation
Projection factorisations in partial evaluation
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Abstract interpretation: a semantics-based tool for program analysis
Handbook of logic in computer science (vol. 4)
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
Deforestation: Transforming Programs to Eliminate Trees
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and GPC
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Occam's Razor in Metacompuation: the Notion of a Perfect Process Tree
WSA '93 Proceedings of the Third International Workshop on Static Analysis
Semantic definitions in REFAL and the automatic production of compilers
Semantics-Directed Compiler Generation, Proceedings of a Workshop
Grammar-Based Data-Flow Analysis to Stop Deforestation
CAAP '94 Proceedings of the 19th International Colloquium on Trees in Algebra and Programming
Higher-level supercompilation as a metasystem transition
Programming and Computing Software
Hi-index | 0.00 |
An abstract framework is developed to describe program transformation by specializing a given program to a restricted set of inputs. Particular cases include partial evaluation [19] and Turchin's more powerful "driving" transformation [33]. Such automatic program speedups have been seen to give quite significant speedups in practical applications. This paper's aims are similar to those of [18]: better to understand the fundamental mathematical phenomena that make such speedups possible. The current paper is more complete than [18], since it precisely formulates correctness of code generation; and more powerful, since it includes program optimizations not achievable by simple partial evaluation. Moreover, for the first time it puts Turchin's driving methodology on a solid semantic foundation which is not tied to any particular programming language or data structure. This paper is dedicated to Satoru Takasu with thanks for good advice early in my career on how to do research, and for insight into how to see the essential part of a new problem.