Advertisement

Evolution of partial evaluators: Removing inherited limits

  • Torben Æ. Mogensen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1110)

Abstract

We show the evolution of partial evaluators over the past ten years from a particular perspective: the attempt to remove limits on the structure of residual programs that are inherited from structural bounds in the original programs. It will often be the case that a language allows an unbounded number or size of a particular features, but each program (being finite) will only have a finite number or size of these features. If the residual programs cannot overcome the bounds given in the original program, that can be seen as a weakness in the partial evaluator, as it potentially limits the effectiveness of residual programs. The inherited limits are best observed through specializing a self-interpreter and examining the object programs produced by specialisation of this. We show how historical developments in partial evaluators gradually remove inherited limits, and suggest how this principle can be used as a guideline for further development.

Keywords

Residual Program Target Program Partial Evaluation Original Program Source Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Berlin, A., Weise, D.: Compiling scientific code using partial evaluation. IEEE Computer vol. 23, no. 5, (1990), 25–37.Google Scholar
  2. Birkedal, L. Welinder, M.: Partial evaluation of Standard ML. Masters Thesis, DIKU, University of Copenhagen, Denmark, (1993).Google Scholar
  3. Bondorf, A.: Improving binding times without explicit CPS-conversion. LFP '92, Lisp Pointers, vol. V, no. 1, ACM Press (1992), 1–10.Google Scholar
  4. Bondorf, A.: Similix manual, system version 5.0. Tech. Report, DIKU, University of Copenhagen, Denmark, (1993).Google Scholar
  5. Bulyonkov, M. A.: A theoretical approach to polyvariant mixed computation. Proceedings of the IFIP TC2 Workshop on Partial Evaluation and Mixed Computation, Gammel AvernÆs, Denmark, 18-24 October, 1987, North-Holland (1988), 51–64.Google Scholar
  6. Danvy, O.: On the evolution of partial evaluators. DART technical report, University of Aarhus, Denmark (1993).Google Scholar
  7. De Niel, A., Bevers, E., De Vlaminck, K.: Program bifurcation for a polymorphically typed functional language. PEPM '91, ACM Press (1991), 142–153.Google Scholar
  8. Dussart, D., Bevers, E., De Vlaminck, K.: Polyvariant constructor specialisation. PEPM '95, ACM Press (1995), 54–65.Google Scholar
  9. Gomard, C. K., Jones, N. D.: A partial evaluator for the untyped lambda-calculus. Journal of Functional Programming, vol. 1, no. 1, January 1991, 21–69.Google Scholar
  10. Heldal, R., Hughes, J.: Partial evaluation and separate compilation. Proceedings of the Partial Evaluation Workshop, Dagstuhl 1996, O. Danvy, R. Glück, P. Thiemann (eds.), Springer-Verlag Lecture Notes in Computer Science 1996.Google Scholar
  11. Hughes, J.: Type specialistion for the λ-calculus. Proceedings of the Partial Evaluation Workshop, Dagstuhl 1996, O. Danvy, R. Glück, P. Thiemann (eds.), Springer-Verlag Lecture Notes in Computer Science 1996.Google Scholar
  12. Itkin, V.E.: On partial and mixed program execution. Program optimization and transformation, Novosibirsk Computing Center, (1983), 17–30.Google Scholar
  13. Jones, N. D., Sestoft, P., Søndergaard, H.: An experiment in partial evaluation: the generation of a compiler generator. Rewriting Techniques and Applications, Springer LNCS 202, Springer-Verlag, (1985), 124–140.Google Scholar
  14. Jones, N. D. (collector): Challenging problems in partial evaluation and mixed computation. Proceedings of the IFIP TC2 Workshop on Partial Evaluation and Mixed Computation, Gammel AvernÆs, Denmark, 18-24 October, 1987, North-Holland (1988), 1–14.Google Scholar
  15. Jones, N. D., Gomard, C. K., Sestoft, P.: Partial evaluation and automatic program generation. Prentice-Hall, 1993Google Scholar
  16. Kildall, G. A.: A unified approach to global program optimization. POPL'73, ACM Press (1973), 194–206.Google Scholar
  17. MalmkjÆr, K., ørbÆk, P.: Polyvariant specialisation for higher-order, block-structured languages. PEPM '95, ACM Press (1995), 66–76.Google Scholar
  18. Mogensen, T. Æ.: Partially static structures in a self-applicable partial evaluator. Proceedings of the IFIP TC2 Workshop on Partial Evaluation and Mixed Computation, Gammel AvernÆs, Denmark, 18-24 October, 1987, North-Holland (1988), 325–347.Google Scholar
  19. Mogensen, T. Æ.: Separating Binding Times in Language Specifications. FPCA '89, Addison-Wesley (1989), 14–25.Google Scholar
  20. Mogensen, T. Æ.: Self-applicable partial evaluation for pure lambda calculus. PEPM'92, Yale tech. report YALEU/DCS/RR-909 (1992), 116–121.Google Scholar
  21. Mogensen, T. Æ.: Constructor specialization. PEPM '93, ACM Press (1993), 22–32.Google Scholar
  22. Romanenko, S. A.: Arity raiser and its use in program specialization. ESOP '90, LNCS 432, Springer-Verlag (1990), 341–360.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Torben Æ. Mogensen
    • 1
  1. 1.DIKUUniversity of CopenhagenDenmark

Personalised recommendations