Abstract
We study the evolution of partial evaluators over the past fifteen years from a particular perspective: The attempt to prevent structural bounds in the original programs from imposing limits on the structure of residual programs. It will often be the case that a language allows unbounded numbers or sizes of 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. We show how historical developments in partial evaluators have removed 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.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
L. Birkedal and M. Welinder. Partial evaluation of Standard ML. Master’s thesis, DIKU, University of Copenhagen, Denmark, 1993. DIKU Research Report 93/22.
M.A. Bulyonkov. A theoretical approach to polyvariant mixed computation. In D. Bjørner, A.P. Ershov, and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 51–64. Amsterdam: North-Holland, 1988.
O. Danvy. On the evolution of partial evaluators. Technical report, DART Technical Report, University of Aarhus, 1993.
O. Danvy, R. Glück, and P. Thiemann, editors. Partial Evaluation. Dagstuhl Castle, Germany, February 1996, volume 1110 of Lecture Notes in Computer Science. Berlin: Springer-Verlag, 1996.
O. Danvy and U. P. Schultz. Lambda-dropping: Transforming recursive equations into programs with block structure. In Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, June 1997, pages 90–106. New York: ACM, 1997.
A. De Niel, E. Bevers, and K. De Vlaminck. Program bifurcation for a polymorphically typed functional language. In Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut (Sigplan Notices, vol. 26, no. 9, September 1991), pages 142–153. New York: ACM, 1991.
D. Dussart, E. Bevers, and K. De Vlaminck. Polyvariant constructor specialisation. In Partial Evaluation and Semantics-Based Program Manipulation, La Jolla, California, June 1995, pages 54–65. New York: ACM, 1995.
D. Dussart, R. Heldal, and J. Hughes. Module-sensitive program specialisation. In SIGPLAN’ 97 Conference on Programming Language Design and Implementation, June 1997, Las Vegas, pages 206–214. New York: ACM, 1997.
C.K. Gomard and N.D. Jones. A partial evaluator for the untyped lambda-calculus. Journal of Functional Programming, 1(1):21–69, January 1991.
R. Heldal and J. Hughes. Partial evaluation and separate compilation. In Partial Evaluation and Semantics-Based Program Manipulation, Amsterdam, The Netherlands, June 1997, pages 1–11. New York: ACM, 1997.
J. Hughes. Type specialisation for the λ-calculus; or, a new paradigm for partial evaluation based on type inference. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation. Dagstuhl Castle, Germany, February 1996, volume 1110 of Lecture Notes in Computer Science. Berlin: Springer-Verlag [4], pages 183–215.
V.E. Itkin. On partial and mixed program execution. In Program Optimization and Transformation, pages 17–30. Novosibirsk: Computing Center, 1983. (In Russian).
N.D. Jones. Challenging problems in partial evaluation and mixed computation. In D. Bjørner, A.P. Ershov, and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 1–14. Amsterdam: North-Holland, 1988.
N.D. Jones, P. Sestoft, and H. Søndergaard. An experiment in partial evaluation: The generation of a compiler generator. In J.-P. Jouannaud, editor, Rewriting Techniques and Applications, Dijon, France. (Lecture Notes in Computer Science, vol. 202), pages 124–140. Berlin: Springer-Verlag, 1985.
K. Malmkjær and P. Ørbæk. Polyvariant specialisation for higher-order, block-structured languages. In Partial Evaluation and Semantics-Based Program Ma nipulation, La Jolla, California, June 1995, pages 66–76. New York: ACM, 1995.
T. Mogensen. Partially static structures in a self-applicable partial evaluator. In D. Bjørner, A.P. Ershov, and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 325–347. Amsterdam: North-Holland, 1988.
T. Mogensen. Separating binding times in language specifications. In Fourth International Conference on Functional Programming Languages and Computer Architecture, London, England, September 1989, pages 14–25. Reading, MA: Addison-Wesley, 1989.
T. Mogensen. Self-applicable partial evaluation for pure lambda calculus. In Partial Evaluation and Semantics-Based Program Manipulation, San Francisco, California, June 1992 (Technical Report YALEU/DCS/RR-909), pages 116–121. New Haven, CT: Yale University, 1992.
T. Mogensen. Constructor specialization. In Partial Evaluation and Semantics-Based Program Manipulation, Copenhagen, Denmark, June 1993, pages 22–32. New York: ACM, 1993.
T. Æ. Mogensen. Evolution of partial evaluators: Removing inherited limits. In Danvy et al. R. Glück, and P. Thiemann, editors. Partial Evaluation. Dagstuhl Castle, Germany, February 1996, volume 1110 of Lecture Notes in Computer Science. Berlin: Springer-Verlag [4], pages 303–321.
S.A. Romanenko. Arity raiser and its use in program specialization. In N. Jones, editor, ESOP’ 90. 3rd European Symposium on Programming, Copenhagen, Denmark, May 1990 (Lecture Notes in Computer Science, vol. 432), pages 341–360. Berlin: Springer-Verlag, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mogensen, T.Æ. (1999). Inherited Limits. In: Hatcliff, J., Mogensen, T.Æ., Thiemann, P. (eds) Partial Evaluation. DIKU 1998. Lecture Notes in Computer Science, vol 1706. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47018-2_6
Download citation
DOI: https://doi.org/10.1007/3-540-47018-2_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66710-0
Online ISBN: 978-3-540-47018-2
eBook Packages: Springer Book Archive