Abstract
When attempting self-application of a partial evaluator written in and for a strongly-typed language several problems arise that do not seem to occur in the untyped world. These problems have hindered the production of a self-applicable partial evaluator in such languages for a number of years. In this paper we report on what is, to the best of our knowledge, the first successful attempt to produce such a partial evaluator and, in the process, we discuss some theoretical aspects of partial evaluation raised by strong-typing.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
M.Abadi, L.Cardelli, B.Pierce and G.Plotkin. Dynamic Typing in a Statically-Typed Language. Proc. POPL89, Austin, Texas, 1989.
L.Augustsson. A Compiler for Lazy ML. Proceedings of Lisp and Functional Programming Conference, Austin, Texas, 1984.
H.Barendregt, The Lambda Calculus, Studies in Logic, Vol 103, North-Holland, 1981.
D.Bjørner, A.P.Ershov and N.D.Jones eds, Partial Evaluation and Mixed Computation, Proceedings IFIP TC2 Workshop, Gammel Avernæs, Denmark, October 1987, North-Holland, 1988.
A.Bondorf, A Self-Applicable Partial Evaluator for Term Rewriting Systems, in TAPSOFT 89, eds. J.Diaz and F.Orejas, LNCS 352, Springer-Verlag, 1989.
A.Bondorf, Self-Applicable Partial Evaluation, Ph.D. Thesis, DIKU, Copenhagen, 1990.
A.Bondorf, N.D.Jones, T.Mogensen and P.Sestoft, Binding Time Analysis and the Taming of Self-Application, Tech Report, DIKU, Copenhagen, 1988.
C. Consel and O. Danvy, Partial Evaluation of Pattern Matching in Strings, Inf. Proc. Lett. 30, pages 79–86, 1989.
C.Consel, New Insights into Partial Evaluation: the Schism Experiment, ESOP 88, ed. H.Ganzinger, LNCS 300, Springer-Verlag, 1988.
R.K. Dybvig, The SCHEME Programming Language, Prentice-Hall Inc., New Jersey, 1987.
D.A. Fuller and S. Abramsky, Mixed Computation of Prology Programs, In New Generation Computing, Vol 6, No 2,3, pages 119–141, Springer-Verlag, 1988.
Y. Futamura, Partial Evaluation of Computation Process—An Approach to a Compiler-Compiler, Systems, Computers, Controls, Vol. 2, No. 5, pages 45–50, 1971.
C.Gomard and N.D.Jones, Compiler Generation by Partial Evaluation: A Case Study, Tech Report, DIKU, Copenhagen, 1989.
C.Gomard and N.D.Jones, A Self-Applicable Partial Evaluator for the Untyped Lambda Calculus, J. of Functional Programming, CUP, Jan 1991.
C.Kehler Holst, Language Triplets: The AMIX Approach, in [BEJ88], pages 167–186, 1988.
N.D.Jones, P.Sestoft and H.Søndergaard, An Experiment in Partial Evaluation: The Generation of a Compiler Generator, Rewriting Techniques and Applications, Dijon, France, ed. J.-P.Jouannaud, LNCS 202, 1985.
J.Launchbury, Projection Factorisations in Partial Evaluation, Ph.D. Thesis, University of Glasgow, Nov 1989. Distinguished Dissertations in Computer Science, Vol 1, C.U.P., 1991.
T.Mogensen, The Application of Partial Evaluation to Ray-Tracing, Master's Thesis, DIKU, University of Copenhagen, 1986.
T.Mogensen, Partially Static Structures in a Self-Applicable Partial Evaluator, in [BEJ88], pages 325–347, 1988.
P. Sestoft, The Structure of a Self-Applicable Partial Evaluator, in Programs as Data Objects, editors H. Ganzinger and N.D. Jones, LNCS 217, pages 236–256, 1986.
R.S.Sundaresh and P.Hudak, A Theory of Incremental Computation and its Application, Proc. POPL 91, Orlando, Florida, 1991.
B.C. Smith, Reflection and Semantics in Lisp, Proc. POPL 84, Salt Lake City, Utah, 1984.
D.Weise, R.Conybeare, E.Ruf and S.Seligman, Automatic Online Partial Evaluation, draft paper, Computer Systems Lab, Stanford Univ, 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Launchbury, J. (1991). A strongly-typed self-applicable partial evaluator. In: Hughes, J. (eds) Functional Programming Languages and Computer Architecture. FPCA 1991. Lecture Notes in Computer Science, vol 523. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3540543961_8
Download citation
DOI: https://doi.org/10.1007/3540543961_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54396-1
Online ISBN: 978-3-540-47599-6
eBook Packages: Springer Book Archive