Cited by 363Logic, programming, and type systemsParallel Computing and Optimization Techniquessemigroups and automata theory

The concept of a supercompiler

Open access
Turchin, Valentin F.·1986·ACM Transactions on Programming Languages and Systems

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.

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Integrity signals

Registry

Crossref · 10.1145/5956.5957

Cites

Statistics

Claims the paper makes

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Claims other papers make about this one

Each is checked against this paper’s own text: does it say what the citing paper says it does?

  • There is an interesting relation between the control techniques presented in the article and current practice in supercompilation.

    “Next, there is an interesting relation between the control techniques presented in this article and current practice in supercompilation [Glück and Sørensen 1996;Sørensen and Glück 1995;Turchin 1986;Turchin 1988].”

Self-check

Percentages, sums and reported differences re-computed from the paper’s own numbers.

The self-check needs the paper’s full text.

Cites

No references could be resolved yet.

Research works printed but not linked: 23

  1. BECKMAN L., 1974, A partial evaluator and its use as a programming tool. Arti{, InteU., 7, 319
  2. 10.1145/321992.321996 · DOI
  3. ERSHOV A.P., 1977, North-Holland, 391
  4. ERSHOV A. P., 1982, Potential applications and problems for future studies, Theor. Comput. Sci., 18, 41, 10.1016/0304-3975(82)90111-6 · DOI
  5. FRIEDMAN D. P., 1967, Automata, Languages and Programming, Michaelson and Millner, Eds
  6. FUTAMURA Y, 1971, Partial evaluation of computation process--an approach to a compiler-compiler, Syst. Comput. Control, 2, 5
  7. FUTAMURA Y., 1983, Proceedings RIMS Symposium on Software Science and Engineering, LNCS 147, 1
  8. HENDERSON P., 1976, Proceedings 3rd Symposium on POPL, 95
  9. JONES N., 1980, Semantics- Driven Compiler Generation, LNCS 94, 10.1007/3-540-10250-7 · DOI
  10. JONES N. D., 1985, International Conference on Rewriting Techniques and Applications
  11. JONES N., 1983, Univ. of Copenhagen
  12. LOMBARDI L.A., 1967, Advances in Computers, 8
  13. NILLSON N.J, 1983, Artificial intelligence prepares for 2001, AI Mag., 4, 7
  14. O'SHEA T., 1984, New York
  15. 10.1145/356914.356917 · DOI
  16. REDDY U. Narrowing as the operational semantics of functional languages. Submitted to the Symposium on Logic Programming (Boston 1985). REDDY U. Narrowing as the operational semantics of functional languages. Submitted to the Symposium on Logic Programming (Boston 1985).
  17. 1977, TsNIPIASS
  18. TURC N, V, 1972, Trudy Vsesoyuzn. Simpos. "Teoria Yazykov i metody progr," Alushta-Kiev
  19. 10.1145/954063.954069 · DOI
  20. TURCHIN V. F, 1980, The language Refal, the theory of compilation, and metasystem analysis, Courant Institute Rep., 20
  21. TURCH N, V, 1980, Semantics-Driven Compiler Generation, LNCS 94
  22. TURCHIN V. F., 1982, ACM Symposium on LISP and Functional Programming, 47
  23. VUILLEMIN J, 1974, Correct and optimal implementation of recursion in a simple programming language, J. Comput. Syst. Stud., 9, 3

Cited by

Sorted by citations

Authors
Turchin, V. F.
Affiliations
City College of New York (US)
Corresponding author
Turchin, Valentin F.
Venue
ACM Transactions on Programming Languages and Systems
Published
1986-06
Volume
8
Issue
3
Pages
292-325
ISSN
  • 0164-0925 (ISSN-L)
  • 1558-4593
OpenAlex
W2020024606
Cited by
363
References
0
Citations by year
2026: 2 · 2025: 4 · 2024: 5 · 2023: 1 · 2022: 7 · 2021: 9 · 2020: 6 · 2019: 3 · 2018: 13 · 2017: 3 · 2016: 7 · 2015: 13 · 2014: 4 · 2013: 8 · 2012: 20
FWCI
4.79
Type
journal article
Language
en
Open access
Locations
ACM Transactions on Programming Languages and Systems (publishedVersion)
Funders
National Science Foundation (8007565)
Topics
  • Physical Sciences › Computer Science › Software › Logic, programming, and type systems
  • Physical Sciences › Computer Science › Hardware and Architecture › Parallel Computing and Optimization Techniques
  • Physical Sciences › Computer Science › Computational Theory and Mathematics › semigroups and automata theory
Keywords
supercompilation, program transformation, partial evaluation, lazy evaluation, equivalence rules, program equivalence

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review