Skip to main content

Partial evaluation, self-application and types

  • Conference paper
  • First Online:
Automata, Languages and Programming (ICALP 1990)

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

Included in the following conference series:

Abstract

We give an overview of and sketch some new possibilities in the area of partial evaluation. This program transformation and optimization technique has received considerable attention in recent years due to its abilities automatically to compile and to transform an interpreter into a compiler (abilities now well established both theoretically and on the computer). Compared to earlier work in the area, this paper has less emphasis on methods and systems and gives more attention to underlying problems and principles. In particular it discusses questions of computational complexity and the desirability of a theoretical framework for studying complexity in partial evaluation. Further, it outlines some first steps toward the problem of verifying type correctness in interpreters, compilers and partial evaluators.

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

  1. A. Appel: Semantics-Directed Code Generation. 12th ACM Symposium on Principles of Programming Languages, pp. 315–324, 1985.

    Google Scholar 

  2. A. Bondorf: Automatic Autoprojection of Higher Order Recursive Equations. 1990 ESOP Proceedings, LNCS 432, Springer-Verlag, 1990.

    Google Scholar 

  3. A. Bondorf, O. Danvy: Automatic Autoprojection of Recursive Equations with Global Variables and Abstract Data Types. DIKU report 90-4, University of Copenhagen,1990.

    Google Scholar 

  4. C. Consel, O. Danvy: Partial Evaluation of Pattern Matching in Strings. Information Processing Letters, Vol. 30, No 2, pp 79–86, January 1989.

    Google Scholar 

  5. S. Cook: An Overview of Computational Complexity. Communications of the ACM 26, pp. 401–408,1983.

    Google Scholar 

  6. A. P. Ershov: Mixed Computation: Potential applications and problems for study. Theoretical Computer Science 18, pp. 41–67, 1982.

    Google Scholar 

  7. Y. Futamura: Partial Evaluation of Computation Process—an Approach to a Compiler-compiler. Systems, Computers, Controls, 2(5), pp. 45–50, 1971.

    Google Scholar 

  8. G. Goguen, J. W. Thatcher, E. G. Wagner, J. B. Wright: Initial Algebra Semantics and Continuous Algebras. Journal of the ACM vol. 24, pp. 68–95, 1977.

    Google Scholar 

  9. C. K. Gomard: Higher Order Partial Evaluation: H.O.P.E. for the Lambda Calculus. M. S. thesis, DIKU, University of Copenhagen, 1989.

    Google Scholar 

  10. M. Hagiya: Meta-circular Interpreter for a Strongly Typed Language. Journal of Symbolic Computation (Japan), 1988.

    Google Scholar 

  11. N. D. Jones, Peter Sestoft, Harald Søndergaard: An experiment in Partial Evaluation: the Generation of a Compiler Generator. Rewriting Techniques and Applications, Lecture Notes in Computer Science, vol. 202, ed. J. Juannoud, pp. 124–140, Springer-Verlag, 1985.

    Google Scholar 

  12. N. D. Jones, Peter Sestoft, Harald Søndergaard: MIX: A Self-applicable Partial Evaluator for Experiments in Compiler Generation. Lisp and Symbolic Computation, vol. 2, no. 1, pp. 9–50, 1989.

    Google Scholar 

  13. N. D. Jones, C. K. Gomard, A. Bondorf, O. Danvy, T. Mogensen: A Self-applicable Partial Evaluator for the Lambda Calculus. IEEE Computer Society 1990 International Conference on Computer Languages, pp. 49–58, 1990.

    Google Scholar 

  14. Stephen Cole Kleene: Introduction to Metamathematics. North-Holland, 1952.

    Google Scholar 

  15. F. L. Morris: Advice on Structuring Compilers and proving them correct. 1st ACM Symposium on Principles of Programming Languages, pp. 144–152, 1973.

    Google Scholar 

  16. P. Mosses: SIS—Semantics Implementation System, Reference Manual and User Guide. DAIMI Report MD-30, University of Aarhus, Denmark, 1979.

    Google Scholar 

  17. H. R. Nielson, F. Nielson: Automatic Binding Time Analysis for a Typed λ-calculus. 15th ACM Symposium on Principles of Programming Languages, pp. 98–106,1988”.

    Google Scholar 

  18. L. Paulson: A Semantics-Directed Compiler Generator. 9th ACM Symposium on Principles of Programming Languages, pp. 224–233, 1982. Wolters-Noordhoff Publishing, 1970.

    Google Scholar 

  19. Hartley Rogers: Theory of Recursive Functions and Effective Computability. McGraw-Hill, 1967.

    Google Scholar 

  20. D. Schmidt: Denotational Semantics: a Methodology for Language Development. Allyn and Bacon, 1986

    Google Scholar 

  21. V. F. Turchin: The Concept of a Supercompiler. ACM Transactions on Programming Languages and Systems, 8(3), pp. 292–325, 1986.

    Google Scholar 

  22. P. Weis: Le Systeme SAM: Metacompilation tres efficace a l'aide d'operateurs semantiques. Universite de Paris 7, 1987.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Michael S. Paterson

Rights and permissions

Reprints and permissions

Copyright information

© 1990 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jones, N.D. (1990). Partial evaluation, self-application and types. In: Paterson, M.S. (eds) Automata, Languages and Programming. ICALP 1990. Lecture Notes in Computer Science, vol 443. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032064

Download citation

  • DOI: https://doi.org/10.1007/BFb0032064

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-52826-5

  • Online ISBN: 978-3-540-47159-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics