Skip to main content

Metacomputation: Metasystem transitions plus supercompilation

  • Conference paper
  • First Online:
Book cover Partial Evaluation

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1110))

Abstract

Metacomputation is a computation which involves meta-system transitions(MST for short) from a computing machine M to a metamachine M′ which controls, analyzes, and imitates the work of M. Semantics-based program transformation, such as partial evaluation and supercompilation (SCP), is metacomputation. Metasystem transitions may be repeated, as when a program transformer gets transformed itsef. In this manner MST hierarchies of any height can be formed.

The paper reviews one strain of research which was started in Russia in the late 1960s-early 1970s and became known for the development of supercompilation as a distinct method of program transformation. After a brief description of the history of this research line, the paper concentrates on those results and problems where supercompilation is combined with repeated metasystem transitions.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S. M. Abramov. Metacomputation and program testing, in: 1st International Workshop on Automated and Algorithmic Debugging, Linköping, Sweden, pp.121–135, 1991.

    Google Scholar 

  2. S. M. Abramov. Metavychisleniya i ikh Prilozhenija (Metacomputation and its Applications, in Russian) Nauka, Moscow, 1995.

    Google Scholar 

  3. Bazisnyi Refal i yego realizatsiya na vychislitel'nykh mashinakh, (Basic Refal and its implementation on computers, in Russian), GOSSTROY SSSR, TsnIPIASS, Moscow, 1977.

    Google Scholar 

  4. S. V. Chmutov, E. A. Gaydar, I. M. Ignatovich, V. F. Kozadoy, A. P. Nemytykh, V. A. Pinchuk. Implementation of the symbol analytic transformations language FLAC, DISCO'90, LNCS vol. 429, p.276, 1990.

    Google Scholar 

  5. Manuel G. Clavel and José Meseguer, Axiomatizing reflective logics and languages, Proc. of Reflection'96, pp.251–276 (1996).

    Google Scholar 

  6. N. Dershowitz. Termination in rewriting, Journal of Symbolic Computation, 3, pp. 69–116, 1987.

    Google Scholar 

  7. A. P. Ershov. On the essence of compilation, Programmirovanie (5):21-39, 1977 (in Russian). See translation in: E. J. Neuhold, ed., Formal description of Programming Concepts pp 391–420, North-Holland, 1978.

    Google Scholar 

  8. A. P. Ershov. Opening Key-note Speech, in: D. Bjørner, A. P. Ershov and N. D. Jones, ed. Partial Evaluation and Mixed Computation, North-Holland, pp.225–282, 1988.

    Google Scholar 

  9. Y. Futamura. Partial evaluation of computation process—an approach to compiler compiler. Systems, Computers, Controls, 2, 5, pp. 45–50, 1971

    Google Scholar 

  10. Y. Futamura and K. Nogi. Generalized Partial Evaluation, in: D. Bjørner, A. P. Ershov, N. D. Jones (eds), Partial Evaluation and Mixed Computation, Proceedings of the IFIP TC2 Workshop, pp.133–151, North-Holland Publishing Co., 1988.

    Google Scholar 

  11. Y. Futamura, K. Nogi and A. Takano. Essence of generalized partial evaluation, Theoretical Computer Science, 90, pp. 61–79, 1991.

    Google Scholar 

  12. R. Glück. Towards multiple self-application, Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Yale University), ACM Press, 1991, pp.309–320.

    Google Scholar 

  13. R. Glück and J. Jørgensen. Generating transformers for deforestation and supercompilation, in: B. Le Charlier ed. Static Analysis, Proceedings, Namur, Belgium, 1994, LNCS, vol.864, pp. 432–448, Springer, 1994.

    Google Scholar 

  14. 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 A. Rauzy, ed. Static Analysis, LNCS vol.724, pp.112–123, Springer 1993.

    Google Scholar 

  15. R. Glück and A. V. Klimov. Metacomputation as a tool for formal linguistic modelling, in: R. Trapple, ed. Cybernetic and Systems '94 vol.2 pp.1563-1570, Singapore, 1994.

    Google Scholar 

  16. R. Glück and A. V. Klimov. Metasystem transition schemes in computer science and mathematics, World's Future: the Journal of General Evolution, vol. 45, pp. 213–243, 1995.

    Google Scholar 

  17. R. F. Gurin and S. A. Romanenko. Yazyk Programmirovaniya Refal Plus (The Programming Language Refal Plus, in Russian), Intertekh, Moscow, 1991.

    Google Scholar 

  18. N. D. Jones, P. Sestoft and H. Søndergaard. An Experiment in Partial Evaluation: The Generation of a Compiler Generator. In: Jouannaud J.-P. (Ed.) Rewriting Techniques and Applications, Dijon, France, LNCS 202, pp. 124–140, Springer, 1985.

    Google Scholar 

  19. N. D. Jones. Automatic program specialization: a re-examination from basic principles, in: D. Bjørner, A. P. Ershov and N. D. Jones, ed. Partial Evaluation and Mixed Computation, North-Holland, pp.225–282, 1988.

    Google Scholar 

  20. N. D. Jones, P. Sestoft and H. Søndergaard, Mix: a self-applicable partial evaluator for experiments in compiler generation, in: Lisp and Symbolic computation 2(1), 1989, pp. 9–50.

    Google Scholar 

  21. N. D. Jones. The essence of program transformation by partial evaluation and driving, in: N. D. Jones, M. Hagiya, and M. Sato ed. Logic, Language and Computation, LNCS vol.792, pp.206-224, Springer, 1994.

    Google Scholar 

  22. V. L. Kistlerov. Printsipy postroeniya yazyka algebraicheskikh vychislenij FLAC (The defining principles of the language for algebraic computations FLAC, in Russian) Institut Problem Upravleniya, Moscow 1987.

    Google Scholar 

  23. A. V. Klimov and S. A. Romanenko. A Meta-evaluator for the language Refal, Basic Concepts and Examples (in Russian), Preprint 71 Keldysh Institute for Applied Mathematics, Moscow, USSR, 1987.

    Google Scholar 

  24. J. Meseguer. General logics, in: H.-D. Ebbinghaus et al ed. Logic Colloquium'87, pp.275–329, North-Holland, 1989.

    Google Scholar 

  25. A. P. Nemytykh, V. A. Pinchuk and V. F. Turchin. A Self-Applicable Supercompiler, in this volume.

    Google Scholar 

  26. V. Yu. Olunin, V. F. Turchin and S. N. Florentsev. A Refal interpreter, in: Trudy 1-oi Vses. Konf. po Programmirovaniyu, (in Russian). Kiev, 1968.

    Google Scholar 

  27. P. Sestoft. The structure of a self-applicable partial evaluator, in: H. Ganzinger and N. D. Jones, ed. Programs as Data Objects (Copenhagen, 1985), LNCS, vol.217, pp.236–256, Springer, 1986.

    Google Scholar 

  28. A. Yu. Romanenko. The generation of inverse functions in Refal. in: D. Bjørner, A. P. Ershov and N. D. Jones, ed. Partial Evaluation and Mixed Computation, North-Holland, pp.427–444, 1988.

    Google Scholar 

  29. A. Yu. Romanenko. Inversion and metacomputation, in: Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Yale University), pp.12–22, ACM Press, 1991.

    Google Scholar 

  30. S. A. Romanenko. A compiler generator produced by a self-applicable specializer can have a surprisingly natural and understandable structure, in: D. Bjørner, A. P. Ershov and N. D. Jones, ed. Partial Evaluation and Mixed Computation, North-Holland, pp.445–464., 1988.

    Google Scholar 

  31. S. A. Romanenko. Arity raiser and its use in program specialization, in: N. D. Jones ed. ESOP'90, LNCS, vol.432, pp.341–360, 1990.

    Google Scholar 

  32. M. H. Sørensen. Turchin's Supercompiler Revisited, Master's thesis, Dept. of Computer Science, University of Copenhagen, 1994.

    Google Scholar 

  33. M. H. Sørensen and R. Glück. An algorithm of generalization in positive supercompilation, in: J. W. Lloyd ed., International Logic Programming Symposium, MIT Press, 1995, to appear.

    Google Scholar 

  34. M. H. Sørensen, R. Glück and N. D. Jones. Towards unifying deforestation, supercompilation, partial evaluation and generalized partial evaluation, in: D. Sannella ed., Programming Languages and Systems, LNCS, vol.788, pp.485–500, Springer, 1994.

    Google Scholar 

  35. M. H. Sørensen, R. Glück and N. D. Jones. A positive supercompiler, Journal of Functional Programming, 1996 (to appear).

    Google Scholar 

  36. V. F. Turchin. Metajazyk dlja formal'nogo opisanija algoritmicjeskikh jazykov (A metalanguage for formal description of algorithmic languages, in Russian), in: Cifrovaja Tekhnika i Programmirovanie, pp.116-124, Moscow 1966.

    Google Scholar 

  37. V. F. Turchin. Programmirovanie na yazyke Refal (Programming in Refal, in Russian), Preprints Nos. 41, 43, 44, 48, 49 of the Institute for Applied Mathematics, AN SSSR, 1971.

    Google Scholar 

  38. V. F. Turchin. Equivalent transformations of recursive functions defined in Refal (in Russian), in: Teoriya Yazykov I Metody Postroeniya Sistem Programmirovaniya (Proceedings of the Symposium), Kiev-Alushta (USSR), pp.31–42, 1972.

    Google Scholar 

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

    Google Scholar 

  40. V. F. Turchin. The Language Refal, the Theory of Compilation and Metasystem Analysis, Courant Computer Science Report #20, New York University, 1980.

    Google Scholar 

  41. V. F. Turchin, R.M. Nirenberg and D.V. Turchin. Experiments with a supercompiler. In: ACM Symposium on Lisp and Functional Programming, ACM, New York, pp. 47–55, 1982.

    Google Scholar 

  42. V. F. Turchin. The concept of a supercompiler, ACM Transactions on Programming Languages and Systems, 8, pp. 292–325, 1986.

    Google Scholar 

  43. V. F. Turchin. The algorithm of generalization in the supercompiler, in: Bjørner D., Ershov A.P., Jones N.D. eds, Partial Evaluation and Mixed Computation, Proceedings of the IFIP TC2 Workshop, pp. 531–549, North-Holland Publishing Co., 1988.

    Google Scholar 

  44. V. F. Turchin. Refal-5, Programming Guide and Reference Manual, New England Publishing Co., 1989.

    Google Scholar 

  45. V. F. Turchin. Program Transformation with Metasystem Transitions, J. of Functional Programming, 3(3) 283–313, 1993.

    Google Scholar 

  46. V. F. Turchin and A.P.Nemytykh. Metavariables: Their implementation and use in Program Transformation, CCNY Technical Report CSc TR-95-012, 1995.

    Google Scholar 

  47. V. F. Turchin and A.P.Nemytykh, A. A Self-applicable Supercompiler CCNY Technical Report CSc TR-95-010, 1995.

    Google Scholar 

  48. V. F. Turchin. On Generalization of Lists and Strings in Supercompilation, CCNY Technical Report TR-96-02, 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Olivier Danvy Robert Glück Peter Thiemann

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Turchin, V.F. (1996). Metacomputation: Metasystem transitions plus supercompilation. In: Danvy, O., Glück, R., Thiemann, P. (eds) Partial Evaluation. Lecture Notes in Computer Science, vol 1110. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61580-6_24

Download citation

  • DOI: https://doi.org/10.1007/3-540-61580-6_24

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61580-4

  • Online ISBN: 978-3-540-70589-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics