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.
Preview
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.
Birkedal, L. Welinder, M.: Partial evaluation of Standard ML. Masters Thesis, DIKU, University of Copenhagen, Denmark, (1993).
Bondorf, A.: Improving binding times without explicit CPS-conversion. LFP '92, Lisp Pointers, vol. V, no. 1, ACM Press (1992), 1–10.
Bondorf, A.: Similix manual, system version 5.0. Tech. Report, DIKU, University of Copenhagen, Denmark, (1993).
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.
Danvy, O.: On the evolution of partial evaluators. DART technical report, University of Aarhus, Denmark (1993).
De Niel, A., Bevers, E., De Vlaminck, K.: Program bifurcation for a polymorphically typed functional language. PEPM '91, ACM Press (1991), 142–153.
Dussart, D., Bevers, E., De Vlaminck, K.: Polyvariant constructor specialisation. PEPM '95, ACM Press (1995), 54–65.
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.
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.
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.
Itkin, V.E.: On partial and mixed program execution. Program optimization and transformation, Novosibirsk Computing Center, (1983), 17–30.
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.
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.
Jones, N. D., Gomard, C. K., Sestoft, P.: Partial evaluation and automatic program generation. Prentice-Hall, 1993
Kildall, G. A.: A unified approach to global program optimization. POPL'73, ACM Press (1973), 194–206.
MalmkjÆr, K., ørbÆk, P.: Polyvariant specialisation for higher-order, block-structured languages. PEPM '95, ACM Press (1995), 66–76.
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.
Mogensen, T. Æ.: Separating Binding Times in Language Specifications. FPCA '89, Addison-Wesley (1989), 14–25.
Mogensen, T. Æ.: Self-applicable partial evaluation for pure lambda calculus. PEPM'92, Yale tech. report YALEU/DCS/RR-909 (1992), 116–121.
Mogensen, T. Æ.: Constructor specialization. PEPM '93, ACM Press (1993), 22–32.
Romanenko, S. A.: Arity raiser and its use in program specialization. ESOP '90, LNCS 432, Springer-Verlag (1990), 341–360.
Author information
Authors and Affiliations
Editor information
Rights 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