Skip to main content

A strongly-typed self-applicable partial evaluator

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 523))

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.

Unable to display preview. Download preview PDF.

References

  1. M.Abadi, L.Cardelli, B.Pierce and G.Plotkin. Dynamic Typing in a Statically-Typed Language. Proc. POPL89, Austin, Texas, 1989.

    Google Scholar 

  2. L.Augustsson. A Compiler for Lazy ML. Proceedings of Lisp and Functional Programming Conference, Austin, Texas, 1984.

    Google Scholar 

  3. H.Barendregt, The Lambda Calculus, Studies in Logic, Vol 103, North-Holland, 1981.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. A.Bondorf, Self-Applicable Partial Evaluation, Ph.D. Thesis, DIKU, Copenhagen, 1990.

    Google Scholar 

  7. A.Bondorf, N.D.Jones, T.Mogensen and P.Sestoft, Binding Time Analysis and the Taming of Self-Application, Tech Report, DIKU, Copenhagen, 1988.

    Google Scholar 

  8. C. Consel and O. Danvy, Partial Evaluation of Pattern Matching in Strings, Inf. Proc. Lett. 30, pages 79–86, 1989.

    Google Scholar 

  9. C.Consel, New Insights into Partial Evaluation: the Schism Experiment, ESOP 88, ed. H.Ganzinger, LNCS 300, Springer-Verlag, 1988.

    Google Scholar 

  10. R.K. Dybvig, The SCHEME Programming Language, Prentice-Hall Inc., New Jersey, 1987.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. Y. Futamura, Partial Evaluation of Computation Process—An Approach to a Compiler-Compiler, Systems, Computers, Controls, Vol. 2, No. 5, pages 45–50, 1971.

    Google Scholar 

  13. C.Gomard and N.D.Jones, Compiler Generation by Partial Evaluation: A Case Study, Tech Report, DIKU, Copenhagen, 1989.

    Google Scholar 

  14. C.Gomard and N.D.Jones, A Self-Applicable Partial Evaluator for the Untyped Lambda Calculus, J. of Functional Programming, CUP, Jan 1991.

    Google Scholar 

  15. C.Kehler Holst, Language Triplets: The AMIX Approach, in [BEJ88], pages 167–186, 1988.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. T.Mogensen, The Application of Partial Evaluation to Ray-Tracing, Master's Thesis, DIKU, University of Copenhagen, 1986.

    Google Scholar 

  19. T.Mogensen, Partially Static Structures in a Self-Applicable Partial Evaluator, in [BEJ88], pages 325–347, 1988.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. R.S.Sundaresh and P.Hudak, A Theory of Incremental Computation and its Application, Proc. POPL 91, Orlando, Florida, 1991.

    Google Scholar 

  22. B.C. Smith, Reflection and Semantics in Lisp, Proc. POPL 84, Salt Lake City, Utah, 1984.

    Google Scholar 

  23. D.Weise, R.Conybeare, E.Ruf and S.Seligman, Automatic Online Partial Evaluation, draft paper, Computer Systems Lab, Stanford Univ, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

John Hughes

Rights and permissions

Reprints 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

Publish with us

Policies and ethics