ACM Home Page
Please provide us with feedback. Feedback
The concept of a supercompiler
Full text PdfPdf (2.80 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 8 ,  Issue 3  (July 1986) table of contents
The MIT Press scientific computation series
Pages: 292 - 325  
Year of Publication: 1986
ISSN:0164-0925
Author
Valentin F. Turchin  The City College of New York, New York, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 85,   Citation Count: 60
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/5956.5957
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
BECKMAN, L., HARALDSON, A., OSKARSON, O., AND SANDEWALL, O. A partial evaluator and its use as a programming tool. Arti{. InteU. 7 (1974), 319-357.
2
 
3
ERSHOV, A.P. On the essence of translation. In Formal Description of Programming Concepts, E. J. Neuhold, Ed., North-Holland, Amsterdam, 1977, 391-418.
 
4
ERSHOV, A. P. Mixed computation: Potential applications and problems for future studies. Theor. Comput. Sci. 18 (1982), 41-67.
 
5
FRIEDMAN, D. P., AND WISE, D.S. CONS should not evaluate its arguments. In Automata, Languages and Programming, Michaelson and Millner, Eds, Edinburgh University Press, 1967, 257-284.
 
6
FUTAMURA, Y. Partial evaluation of computation process--an approach to a compiler-compiler. Syst. Comput. Control 2, 5 (1971), 45-50.
 
7
8
 
9
 
10
 
11
JONES, N., AND TOFTE, M. Some principles and notation for the construction of compiler generators. DIKU, Internal Rep., Univ. of Copenhagen, 1983.
 
12
LOMBARDI, L.A. Incremental computation. In Advances in Computers, 8, Academic Press, New York, 1967.
 
13
NILLSON, N.J. Artificial intelligence prepares for 2001. AI Mag. 4 (1983), 7-14.
 
14
O'SHEA, T., AND EISENSTADT, M. Artificial Intelligence. Harper and Row, New York, 1984.
15
 
16
REDDY, U. Narrowing as the operational semantics of functional languages. Submitted to the Symposium on Logic Programming (Boston, 1985).
 
17
Basic Refal and its Implementation on Computers. GOSSTROI SSSR, TsNIPIASS, Moscow, 1977. The authors are not indicated in the book. They are: V. F. Khoroshevski, And. V. Klimov, Ark. V. Klimov, A. G. Krasovski, S. A. Romanenko, I. B. Shchenkov, and V. F. Turchin. (In Russian)
 
18
SOWA, J.F. A prologue to Prolog. Draft, distributed with permission of the author, 1984.
 
19
TURCmN, V.F. Equivalent transformation of recursive functions defined in Refal. In Trudy Vsesoyuzn. Simpos. "Teoria Yazykov i metody progr," Alushta-Kiev, 1972, 31-42. (In Russian)
20
 
21
TURCHIN, V. F. The language Refal, the theory of compilation, and metasystem analysis. Courant Institute Rep. 20, 1980.
 
22
23
 
24
VUILLEMIN, J. Correct and optimal implementation of recursion in a simple programming language. J. Comput. Syst. Stud. 9, 3 (Dec. 1974).

CITED BY  60


REVIEW

"Jacek Gibert : Reviewer"

The concept of a supercompiler provides a declarative way of viewing programming and compilation. This contrasts with the common perception of practical programming as “wizardry” that requires an intimate knowledge of a complex compi  more...

Collaborative Colleagues:
Valentin F. Turchin: colleagues