Advertisement

Arity raiser and its use in program specialization

  • Sergei A. Romanenko
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 432)

Abstract

Experiments on generating compilers by specializing specializers with respect to interpreters have shown that the compilers thus obtained have a natural structure only if the specializer does variable splitting. Variable splitting can result in a residual program using several variables to represent the values of a single variable of the original program. In the case of functional programming variable splitting is done by raising the arities of functions. The paper describes the structure and principles of operation of an arity raiser dealing with programs in a subset of pure Lisp.

Keywords

arity raiser compiler generator partial evaluation retyping specializer variable splitting 

References

  1. [Barzdin 88]
    G.Barzdin. Mixed Computation and Compiler Basis. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 15–26, North-Holland, 1988.Google Scholar
  2. [Beckman 76]
    L. Beckman, A. Haraldson, O. Oskarsson, E. Sandewall. A Partial Evaluator, and Its Use as a Programming Tool. Artificial Intelligence, 7(4):319–357, 1976.CrossRefGoogle Scholar
  3. [Bulyonkov 84]
    M.A. Bulyonkov. Polyvariant Mixed Computation for Analyzer Programs. Acta Informatica, 21:473–484, 1984.CrossRefMathSciNetGoogle Scholar
  4. [Burstall 77]
    R.M. Burstall and J. Darlington. A Transformation System for Developing Recursive Programs. Journal of the ACM, 24(1):44–67, 1977.CrossRefGoogle Scholar
  5. [Dixon 71]
    J. Dixon. The Specializer, a Method of Automatically Writing Computer Programs. Division of Computer Research and Technology, National Institute of Health, Bethenda, Maryland, 1971.Google Scholar
  6. [Ershov 78]
    On the Essence of Compilation. In E.J.Neuhold, editor, Formal Description of Programming Concepts, pages 391–420, North-Holland, 1978.Google Scholar
  7. [Ershov 81]
    A.P. Ershov. The Transformational Machine: Theme and Variations. In J.Grushka and M.Chytil, editors, Mathematical Foundations of Computer Science, Štrbskè Pleso, Czechoslovakia, pages 16–32, Lecture Notes in Computer Science, Vol.118, Springer-Verlag, 1981.Google Scholar
  8. [Futamura 71]
    Partial Evaluation of Computation Process — An Approach to a Compiler-Compiler. Systems, Computers, Controls, 2(5):45–50, 1971.Google Scholar
  9. [Hughes 88]
    J.Hughes. Backward Analysis of Functional Programs. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 187–208, North-Holland, 1988.Google Scholar
  10. [Jones 85]
    N.D. Jones, P. Sestoft and H. Sondergaard. An Experiment in Partial Evaluation: The Generation of a Compiler Generator. In J.-P.Jouannaud, editor, Rewriting Techniques and Applications, Dijon, France, pages 124–140, Lecture Notes in Computer Science, Vol.202, Springer-Verlag, 1985.Google Scholar
  11. [Jones 86]
    N.D. Jones and A.Mycroft. Data Flow Analysis of Applicative Programs Using Minimal Function Graphs. In Thirteens ACM Symposium on Principles of Programming Languages, St.Petersburg, Florida, pages 296–306, ACM, 1986.Google Scholar
  12. [Jones 88]
    Automatic Program Specialization: A Re-Examination from Basic Principles. In D.Bjorner, A.P.Ershov and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 225–282, North-Holland, 1988.Google Scholar
  13. [Mogensen 88]
    T.Mogensen. Partially Static Structures in a Self-Applicable Partial Evaluator. In D.Bjorner, A.P.Ershov and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 325–347, North-Holland, 1988.Google Scholar
  14. [Ostrovski 88]
    B.N.Ostrowski. Implementation of Controlled Mixed Computation in System for Automatic Development of Language-Oriented Parsers. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 385–403, North-Holland, 1988.Google Scholar
  15. [Romanenko 88]
    S.A.Romanenko. A Compiler Generator Produced by a Self-Applicable Specializer Can Have a Surprisingly Natural and Understandable Structure. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 445–463, North-Holland, 1988.Google Scholar
  16. [Sestoft 86]
    The Structure of a Self-Applicable Partial Evaluator. In H.Ganzinger and N.D.Jones, editors, Programs as Data Objects, Copenhagen, Denmark, 1985, pages 236–256, Lecture Notes in Computer Science, Vol. 217, Springer-Verlag, 1986.Google Scholar
  17. [Schmidt 86]
    D.A.Schmidt. Denotational Semantics. Allyn and Bacon, Boston, 1986.Google Scholar
  18. [Sestoft 88]
    P.Sestoft. Automatic Call Unfolding in a Partial Evaluator. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 485–506, North-Holland, 1988.Google Scholar
  19. [Turchin 72]
    V.F.Turchin. Equivalent Transformation of Recursive Functions Defined in Refal. In Teoriya Yazykov i Metody Programmirovaniya. Trudy Simposiuma, pages 31–42, Alushta-Kiev, 1972 (in Russian).Google Scholar
  20. [Turchin 79]
    V.F. Turchin. A Supercompiler System Based on the Language Refal. SIGPLAN Notices, 14(2):46–54, February 1979.Google Scholar
  21. [Turchin 82]
    V.F.Turchin, R.M.Nirenberg and D.V.Turchin. Experiments with a Supercompiler. In 1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania, pages 47–55, ACM, 1982.Google Scholar
  22. [Turchin 86]
    V.F. Turchin. The Concept of a Supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, July 1986.CrossRefGoogle Scholar
  23. [Turchin 88]
    V.F.Turchin. The Algorithm of Generalization in the Supercompiler. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 531–549, North-Holland, 1988.Google Scholar
  24. [Wadler 88]
    P.Wadler. Deforestation: Transforming Programs to Eliminate Trees. In European Symposium on Programming, Lecture Notes in Computer Science, Springer-Verlag, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Sergei A. Romanenko
    • 1
  1. 1.Keldysh Institute of Applied MathematicsAcademy of Sciences of the USSRMoscowUSSR

Personalised recommendations