Occam's razor in metacomputation: the notion of a perfect process tree

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 724)

Abstract

We introduce the notion of a perfect process tree as a model for the full propagation of information in metacomputation. Starting with constant propagation we construct step-by-step the driving mechanism used in supercompilation which ensures the perfect propagation of information. The concept of a simple supercompiler based on perfect driving coupled with a simple folding strategy is explained. As an example we demonstrate that specializing a naive pattern matcher with respect to a fixed pattern obtains the efficiency of a matcher generated by the Knuth, Morris & Pratt algorithm.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abramov S. M., Metacomputation and program testing. In: 1st International Workshop on Automated and Algorithmic Debugging. (Linköping, Sweden). 121–135, Linköping University 1993.Google Scholar
  2. 2.
    Bondorf A., A self-applicable partial evaluator for term rewriting systems. In: Díaz J., Orejas F. (ed.), TAPSOFT '89. (Barcelona, Spain). Lecture Notes in Computer Science, Vol. 352, 81–95, Springer-Verlag 1989.Google Scholar
  3. 3.
    Bondorf A., Danvy O., Automatic autoprojection of recursive equations with global variables and abstract data types. In: Science of Computer Programming, 16(2): 151–195, 1991.Google Scholar
  4. 4.
    Consel C., Binding time analysis for higher order untyped functional languages. In: Proceedings of the 1990 ACM Conference on Lisp and Functional Programming. (Nice, France). 264–272, ACM Press 1990.Google Scholar
  5. 5.
    Consel C., Danvy O., Partial evaluation of pattern matching in strings. In: Information Processing Letters, 30(2): 79–86, 1989.Google Scholar
  6. 6.
    Futamura Y., Nogi K., Takano A., Essence of generalized partial computation. In: Theoretical Computer Science, 90(1): 61–79, 1991.Google Scholar
  7. 7.
    Glück R., Towards multiple self-application. In: Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation. (New Haven, Connecticut). 309–320, ACM Press 1991.Google Scholar
  8. 8.
    Glück R., Projections for knowledge based systems. In: Trappl R. (ed.), Cybernetics and Systems Research '92. Vol. 1, 535–542, World Scientific: Singapore 1992.Google Scholar
  9. 9.
    Glück R., Turchin V. F., Application of metasystem transition to function inversion and transformation. In: Proceedings of the ISSAC '90 (Tokyo, Japan). 286–287, ACM Press 1990.Google Scholar
  10. 10.
    Jones N. D., Automatic program specialization: a re-examination from basic principles. In: BjØrner D., Ershov A. P., Jones N. D. (ed.), Partial Evaluation and Mixed Computation. (Gammel AvernÆs, Denmark). 225–282, North-Holland 1988.Google Scholar
  11. 11.
    Jones N. D., Gomard C. K., Sestoft P., Partial Evaluation and Automatic Program Generation. Prentice Hall International Series in Computer Science. Prentice Hall: New York, London, Toronto 1993.Google Scholar
  12. 12.
    Jones N. D., Sestoft P., SØndergaard H., Mix: a self-applicable partial evaluator for experiments in compiler generation. In: Lisp and Symbolic Computation, 2(1): 9–50, 1989.Google Scholar
  13. 13.
    Klimov And. V. Klimov, Dynamic specialization in extended functional language with monotone objects. In: Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Yale University, Connecticut). 199–210, ACM Press 1991.Google Scholar
  14. 14.
    Klimov And. V. Klimov, Romanenko S. A., A metaevaluator for the language Refal. Basic concepts and examples. Keldysh Institute of Applied Mathematics, Academy of Sciences of the USSR, Moscow. Preprint No. 71, 1987 (in Russian).Google Scholar
  15. 15.
    Knuth D. E., Morris J. H., Pratt V. R., Fast pattern matching in strings. In: SIAM Journal of Computation, 6(2): 323–350, 1977.Google Scholar
  16. 16.
    Mogensen T. Æ., Partially static structures in a self-applicable partial evaluator. In: BjØrner D., Ershov A. P., Jones N. D. (ed.), Partial Evaluation and Mixed Computation. (Gammel AvernÆs, Denmark). 325–347, North-Holland 1988.Google Scholar
  17. 17.
    Romanenko A. Yu., Inversion and metacomputation. In: Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Yale University, Connecticut). 12–22, ACM Press 1991.Google Scholar
  18. 18.
    Romanenko S. A., Driving for Refal-4 programs. Keldysh Institute of Applied Mathematics, Academy of Sciences of the USSR, Moscow. Preprint No. 211, 1987 (in Russian).Google Scholar
  19. 19.
    Takano A., Generalized partial computation using disunification to solve constraints. In: Rusinowitch M., Rémy J. L. (ed.), Conditional Term Rewriting Systems. Proceedings. (Pont-à-Mousson, France). Lecture Notes in Computer Science, Vol. 626, 424–428, Springer-Verlag 1993.Google Scholar
  20. 20.
    Turchin V. F., Equivalent transformations of recursive functions defined in Refal. In: Teoria Jazykov i Metody Programmirovanija (Proceedings of the Symposium on the Theory of Languages and Programming Methods). (Kiev-Alushta, USSR). 31–42, 1972 (in Russian).Google Scholar
  21. 21.
    Turchin V. F., Equivalent transformations of Refal programs. In: Avtomatizirovannaja Sistema upravlenija stroitel'stvom. Trudy CNIPIASS, 6: 36–68, 1974 (in Russian).Google Scholar
  22. 22.
    Turchin V. F., The language Refal, the theory of compilation and metasystem analysis. Courant Institute of Mathematical Sciences, New York University. Courant Computer Science Report No. 20, 1980.Google Scholar
  23. 23.
    Turchin V. F., Semantic definitions in Refal and automatic production of compilers. In: Jones N. D. (ed.), Semantics-Directed Compiler Generation. (Aarhus, Denmark). Lecture Notes in Computer Science, Vol. 94, 441–474, Springer-Verlag 1980.Google Scholar
  24. 24.
    Turchin V. F., The concept of a supercompiler. In: ACM TOPLAS, 8(3): 292–325, 1986.Google Scholar
  25. 25.
    Turchin V. F., The algorithm of generalization in the supercompiler. In: BjØrner D., Ershov A. P., Jones N. D. (ed.), Partial Evaluation and Mixed Computation. (Gl. AvernÆs, Denmark). 341–353, 1988.Google Scholar
  26. 26.
    Turchin V. F., Program transformation with metasystem transitions. In: Journal of Functional Programming, 1993 (to appear).Google Scholar

Copyright information

© Springer-Verlag 1993

Authors and Affiliations

  1. 1.Institut für ComputersprachenUniversity of Technology ViennaViennaAustria
  2. 2.Keldysh Institute of Applied MathematicsRussian Academy of SciencesMoscowRussia
  3. 3.DIKU, Dept. of Computer ScienceUniversity of CopenhagenCopenhagen ØDenmark

Personalised recommendations