Skip to main content

Evolution of partial evaluators: Removing inherited limits

  • Conference paper
  • First Online:
Partial Evaluation

Part of the book series: Lecture Notes in Computer Science ((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.

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

  • Berlin, A., Weise, D.: Compiling scientific code using partial evaluation. IEEE Computer vol. 23, no. 5, (1990), 25–37.

    Google Scholar 

  • Birkedal, L. Welinder, M.: Partial evaluation of Standard ML. Masters Thesis, DIKU, University of Copenhagen, Denmark, (1993).

    Google Scholar 

  • Bondorf, A.: Improving binding times without explicit CPS-conversion. LFP '92, Lisp Pointers, vol. V, no. 1, ACM Press (1992), 1–10.

    Google Scholar 

  • Bondorf, A.: Similix manual, system version 5.0. Tech. Report, DIKU, University of Copenhagen, Denmark, (1993).

    Google Scholar 

  • 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 

  • Danvy, O.: On the evolution of partial evaluators. DART technical report, University of Aarhus, Denmark (1993).

    Google Scholar 

  • 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 

  • Dussart, D., Bevers, E., De Vlaminck, K.: Polyvariant constructor specialisation. PEPM '95, ACM Press (1995), 54–65.

    Google Scholar 

  • 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 

  • 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 

  • 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 

  • Itkin, V.E.: On partial and mixed program execution. Program optimization and transformation, Novosibirsk Computing Center, (1983), 17–30.

    Google Scholar 

  • 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 

  • 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 

  • Jones, N. D., Gomard, C. K., Sestoft, P.: Partial evaluation and automatic program generation. Prentice-Hall, 1993

    Google Scholar 

  • Kildall, G. A.: A unified approach to global program optimization. POPL'73, ACM Press (1973), 194–206.

    Google Scholar 

  • MalmkjÆr, K., ørbÆk, P.: Polyvariant specialisation for higher-order, block-structured languages. PEPM '95, ACM Press (1995), 66–76.

    Google Scholar 

  • 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 

  • Mogensen, T. Æ.: Separating Binding Times in Language Specifications. FPCA '89, Addison-Wesley (1989), 14–25.

    Google Scholar 

  • Mogensen, T. Æ.: Self-applicable partial evaluation for pure lambda calculus. PEPM'92, Yale tech. report YALEU/DCS/RR-909 (1992), 116–121.

    Google Scholar 

  • Mogensen, T. Æ.: Constructor specialization. PEPM '93, ACM Press (1993), 22–32.

    Google Scholar 

  • Romanenko, S. A.: Arity raiser and its use in program specialization. ESOP '90, LNCS 432, Springer-Verlag (1990), 341–360.

    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

Mogensen, T.Æ. (1996). Evolution of partial evaluators: Removing inherited limits. 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_15

Download citation

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

  • 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