Affiliation:
1. The City College of New York, New York, NY
Abstract
A supercompiler is a program transformer of a certain type. It traces the possible generalized histories of computation by the original program, and compiles an equivalent program, reducing in the process the redundancy that could be present in the original program. The nature of the redundancy that can be eliminated by supercompilation may be various, e.g., some variables might have predefined values (as in partial evaluation), or the structure of control transfer could be made more efficient (as in lazy evaluation), or it could simply be the fact that the same variable is used more than once. The general principles of supercompilation are described and compared with the usual approach to program transformation as a stepwise application of a number of equivalence rules. It is argued that the language Refal serves the needs of supercompilation best. Refal is formally defined and compared with Prolog and other languages. Examples are given of the operation of a Refal supercompiler implemented at CCNY on an IBM/370.
Publisher
Association for Computing Machinery (ACM)
Reference24 articles.
1. A partial evaluator and its use as a programming tool. Arti{;BECKMAN L.;InteU.,1974
2. A Transformation System for Developing Recursive Programs
3. Potential applications and problems for future studies;ERSHOV A. P.;Theor. Comput. Sci.,1982
Cited by
219 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The Long Way to Deforestation: A Type Inference and Elaboration Technique for Removing Intermediate Data Structures;Proceedings of the ACM on Programming Languages;2024-08-15
2. Towards a Dynabook for verified VM construction;Journal of Computer Languages;2024-08
3. Tinyrossa: A Compiler Framework for Vertical, Verified Construction of Smalltalk VMs;Companion Proceedings of the 8th International Conference on the Art, Science, and Engineering of Programming;2024-03-11
4. A Historical Perspective on Program Transformation and Recent Developments (Invited Contribution);Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation;2024-01-11
5. Computing Programs;Programs as Diagrams;2023