Metacomputation: Metasystem transitions plus supercompilation

  • Valentin F. Turchin
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1110)


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.


program transformation supercompilation metacomputation self-application metasystem transition MST-schemes metacode pattern-matching graphs Refal 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 2.
    S. M. Abramov. Metavychisleniya i ikh Prilozhenija (Metacomputation and its Applications, in Russian) Nauka, Moscow, 1995.Google Scholar
  3. 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. 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. 5.
    Manuel G. Clavel and José Meseguer, Axiomatizing reflective logics and languages, Proc. of Reflection'96, pp.251–276 (1996).Google Scholar
  6. 6.
    N. Dershowitz. Termination in rewriting, Journal of Symbolic Computation, 3, pp. 69–116, 1987.Google Scholar
  7. 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. 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. 9.
    Y. Futamura. Partial evaluation of computation process—an approach to compiler compiler. Systems, Computers, Controls, 2, 5, pp. 45–50, 1971Google Scholar
  10. 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. 11.
    Y. Futamura, K. Nogi and A. Takano. Essence of generalized partial evaluation, Theoretical Computer Science, 90, pp. 61–79, 1991.Google Scholar
  12. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 24.
    J. Meseguer. General logics, in: H.-D. Ebbinghaus et al ed. Logic Colloquium'87, pp.275–329, North-Holland, 1989.Google Scholar
  25. 25.
    A. P. Nemytykh, V. A. Pinchuk and V. F. Turchin. A Self-Applicable Supercompiler, in this volume.Google Scholar
  26. 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. 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. 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. 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. 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. 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. 32.
    M. H. Sørensen. Turchin's Supercompiler Revisited, Master's thesis, Dept. of Computer Science, University of Copenhagen, 1994.Google Scholar
  33. 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. 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. 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. 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. 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. 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. 39.
    V. F. Turchin. The Phenomenon of Science, Columbia University Press, New York, 1977.Google Scholar
  40. 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. 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. 42.
    V. F. Turchin. The concept of a supercompiler, ACM Transactions on Programming Languages and Systems, 8, pp. 292–325, 1986.Google Scholar
  43. 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. 44.
    V. F. Turchin. Refal-5, Programming Guide and Reference Manual, New England Publishing Co., 1989.Google Scholar
  45. 45.
    V. F. Turchin. Program Transformation with Metasystem Transitions, J. of Functional Programming, 3(3) 283–313, 1993.Google Scholar
  46. 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. 47.
    V. F. Turchin and A.P.Nemytykh, A. A Self-applicable Supercompiler CCNY Technical Report CSc TR-95-010, 1995.Google Scholar
  48. 48.
    V. F. Turchin. On Generalization of Lists and Strings in Supercompilation, CCNY Technical Report TR-96-02, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Valentin F. Turchin
    • 1
  1. 1.Computer Science DepartmentThe City College of New YorkNew YorkUSA

Personalised recommendations