Skip to main content

Introduction to Supercompilation

  • Conference paper
Partial Evaluation (DIKU 1998)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1706))

Included in the following conference series:

Abstract

This paper gives an introduction to Turchin’s supercompiler, a program transformer for functional programs which performs optimizations beyond partial evaluation and deforestation. More precisely, the paper presents positive supercompilation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. B. Courcelle. Fundamental properties of infinite trees. Theoretical Computer Science, 25:95–169, 1983.

    Article  MathSciNet  MATH  Google Scholar 

  2. O. Danvy, R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996.

    MATH  Google Scholar 

  3. N. Dershowitz. Termination of rewriting. Journal of Symbolic Computation, 3, 1987.

    Google Scholar 

  4. Y. Futamura, K. Nogi, and A. Takano. Essence of generalized partial computation. Theoretical Computer Science, 90(1):61–79, 1991.

    Article  MATH  Google Scholar 

  5. R. Glück, J. Jørgensen, B. Martens, and M.H. Sørensen. Controlling conjunctive partial deduction. In H. Kuchen and D.S. Swierstra, editors, Programming Languages: Implementations, Logics and Programs, volume 1140 of Lecture Notes in Computer Science, pages 137–151. Springer-Verlag, 1996.

    Google Scholar 

  6. R. Glück and A.V. Klimov. Occam’s razor in metacomputation: the notion of a perfect process tree. In P. Cousot, M. Falaschi, G. Filè, and G. Rauzy, editors, Workshop on Static Analysis, volume 724 of Lecture Notes in Computer Science, pages 112–123. Springer-Verlag, 1993.

    Chapter  Google Scholar 

  7. R. Glück and A.V. Klimov. A regeneration scheme for generating extensions. Information Processing Letters, 62(3):127–134, 1997.

    Article  MathSciNet  MATH  Google Scholar 

  8. R. Glück and M.H. Sørensen. Partial deduction and driving are equivalent. In M. Hermenegildo and J. Penjam, editors, Programming Languages: Implementations, Logics and Programs, volume 844 of Lecture Notes in Computer Science, pages 165–181. Springer-Verlag, 1994.

    Chapter  Google Scholar 

  9. R. Glück and M.H. Sørensen. A roadmap to metacomputation by supercompilation. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [2], pages 137–160.

    Chapter  Google Scholar 

  10. N.D. Jones. The essence of program transformation by partial evaluation and driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language, and Computation, volume 792 of Lecture Notes in Computer Science, pages 206–224. Springer-Verlag, 1994. Festschrift in honor of S. Takasu.

    Chapter  Google Scholar 

  11. A.V. Klimov and S.A. Romanenko. Metavychislitel’ dlja jazyka Refal. Osnovnye ponjatija i primery. (A metaevaluator for the language Refal. Basic concepts and examples). Preprint 71, Keldysh Institute of Applied Mathematics, Academy of Sciences of the USSR, Moscow, 1987. (in Russian).

    Google Scholar 

  12. D.E. Knuth, J.H. Morris, and V.R. Pratt. Fast pattern matching in strings. SIAM Journal on Computing, 6(2):323–350, 1977.

    Article  MathSciNet  MATH  Google Scholar 

  13. M. Krog and P. Rasmussen. Positive supercompilation. Manuscript, 1998.

    Google Scholar 

  14. J.-L. Lassez, M.J. Maher, and K. Marriott. Unification revisited. In J. Minker, editor, Foundations of Deductive Databases and Logic Programming, pages 587–625. Morgan Kaufmann, Los Altos, Ca., 1988.

    Chapter  Google Scholar 

  15. M. Leuschel and B. Martens. Global control for partial deduction through characteristic atoms and global trees. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [2], pages 263–283.

    Chapter  Google Scholar 

  16. B. Martens and J. Gallagher. Ensuring global termination of partial deduction while allowing flexible polyvariance. In L. Sterling, editor, International Conference on Logic Programming, pages 597–613. MIT Press, 1995.

    Google Scholar 

  17. A.P. Nemytykh, V.A. Pinchuk, and V.F. Turchin. A self-applicable supercompiler. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [2], pages 322–337.

    Chapter  Google Scholar 

  18. K. Nielsen and M.H. Sørensen. Call-by-name CPS-translation as a binding-time improvement. In A. Mycroft, editor, Static Analysis Symposium, volume 983 of Lecture Notes in Computer Science, pages 296–313. Springer-Verlag, 1995.

    Chapter  Google Scholar 

  19. D. Sands. Proving the correctness of recursion-based automatic program transformation. In P. Mosses, M. Nielsen, and M.I. Schwartzbach, editors, Theory and Practice of Software Development, volume 915 of Lecture Notes in Computer Science, pages 681–695. Springer-Verlag, 1995.

    Chapter  Google Scholar 

  20. D. Sands. Total correctness by local improvement in program transformation. In Conference Record of the Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 221–232. ACM Press, 1995.

    Google Scholar 

  21. M.H. Sørensen. Turchin’s supercompiler revisited. Master’s thesis, Department of Computer Science, University of Copenhagen, 1994. DIKU-rapport 94/17.

    Google Scholar 

  22. M.H. Sørensen and R. Glück. An algorithm of generalization in positive super-compilation. In J.W. Lloyd, editor, Logic Programming: Proceedings of the 1995 International Symposium, pages 465–479. MIT Press, 1995.

    Google Scholar 

  23. M.H. Sørensen, R. Glück, and N.D. Jones. A positive supercompiler. Journal of Functional Programming, 6(6):811–838, 1996.

    Article  MATH  Google Scholar 

  24. M.H.B. Sørensen. Convergence of program transformers in the metric space of trees. In J. Jeuring, editor, Mathematics of Program Construction, volume 1422 of Lecture Notes in Computer Science, pages 315–337. Springer-Verlag, 1998.

    Chapter  Google Scholar 

  25. V.F. Turchin. The Phenomenon of Science. Columbia University Press, New York, 1977.

    Google Scholar 

  26. V.F. Turchin. A supercompiler system based on the language Refal. SIGPLAN Notices, 14(2):46–54, 1979.

    Article  Google Scholar 

  27. V.F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.

    Article  MATH  Google Scholar 

  28. V.F. Turchin. Program transformation with metasystem transitions. Journal of Functional Programming, 3(3):283–313, 1993.

    Article  MathSciNet  Google Scholar 

  29. V.F. Turchin. Metacomputation: Metasystem transition plus Supercompilation. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation, volume 1110 of Lecture Notes in Computer Science. Springer-Verlag, 1996 [2], pages 481–510.

    Chapter  Google Scholar 

  30. V.F. Turchin, R. Nirenberg, and D. Turchin. Experiments with a supercompiler. In ACM Conference on Lisp and Functional Programming, pages 47–55. ACM Press, 1982.

    Google Scholar 

  31. W. Vanhoof. Implementatie van een supercompilator voor een functionele taal (in dutch). Master’s thesis, University of Leuven, 1996.

    Google Scholar 

  32. P.L. Wadler. Deforestation: Transforming programs to eliminate intermediate trees. Theoretical Computer Science, 73:231–248, 1990.

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sørensen, M.H.B., Glück, R. (1999). Introduction to Supercompilation. In: Hatcliff, J., Mogensen, T.Æ., Thiemann, P. (eds) Partial Evaluation. DIKU 1998. Lecture Notes in Computer Science, vol 1706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47018-2_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-47018-2_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66710-0

  • Online ISBN: 978-3-540-47018-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics