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.
Preview
Unable to display preview. Download preview PDF.
References
A. Appel: Semantics-Directed Code Generation. 12th ACM Symposium on Principles of Programming Languages, pp. 315–324, 1985.
A. Bondorf: Automatic Autoprojection of Higher Order Recursive Equations. 1990 ESOP Proceedings, LNCS 432, Springer-Verlag, 1990.
A. Bondorf, O. Danvy: Automatic Autoprojection of Recursive Equations with Global Variables and Abstract Data Types. DIKU report 90-4, University of Copenhagen,1990.
C. Consel, O. Danvy: Partial Evaluation of Pattern Matching in Strings. Information Processing Letters, Vol. 30, No 2, pp 79–86, January 1989.
S. Cook: An Overview of Computational Complexity. Communications of the ACM 26, pp. 401–408,1983.
A. P. Ershov: Mixed Computation: Potential applications and problems for study. Theoretical Computer Science 18, pp. 41–67, 1982.
Y. Futamura: Partial Evaluation of Computation Process—an Approach to a Compiler-compiler. Systems, Computers, Controls, 2(5), pp. 45–50, 1971.
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.
C. K. Gomard: Higher Order Partial Evaluation: H.O.P.E. for the Lambda Calculus. M. S. thesis, DIKU, University of Copenhagen, 1989.
M. Hagiya: Meta-circular Interpreter for a Strongly Typed Language. Journal of Symbolic Computation (Japan), 1988.
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.
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.
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.
Stephen Cole Kleene: Introduction to Metamathematics. North-Holland, 1952.
F. L. Morris: Advice on Structuring Compilers and proving them correct. 1st ACM Symposium on Principles of Programming Languages, pp. 144–152, 1973.
P. Mosses: SIS—Semantics Implementation System, Reference Manual and User Guide. DAIMI Report MD-30, University of Aarhus, Denmark, 1979.
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”.
L. Paulson: A Semantics-Directed Compiler Generator. 9th ACM Symposium on Principles of Programming Languages, pp. 224–233, 1982. Wolters-Noordhoff Publishing, 1970.
Hartley Rogers: Theory of Recursive Functions and Effective Computability. McGraw-Hill, 1967.
D. Schmidt: Denotational Semantics: a Methodology for Language Development. Allyn and Bacon, 1986
V. F. Turchin: The Concept of a Supercompiler. ACM Transactions on Programming Languages and Systems, 8(3), pp. 292–325, 1986.
P. Weis: Le Systeme SAM: Metacompilation tres efficace a l'aide d'operateurs semantiques. Universite de Paris 7, 1987.
Author information
Authors and Affiliations
Editor information
Rights 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