Abstract
This paper reports the relationship between formal description of semantics (i.e., interpreter) of a programming language and an actual compiler. The paper also describes a method to automatically generate an actual compiler from a formal description which is, in some sense, the partial evaluation of a computation process. The compiler-compiler inspired by this method differs from conventional ones in that the compiler-compiler based on our method can describe an evaluation procedure (interpreter) in defining the semantics of a programming language, while the conventional one describes a translation process.
Similar content being viewed by others
References
Burstall, R.M. and Popplestone, R.J. POP-2 reference manual. Machine Intelligence (2) (1968) 205–249.
Feldman, J.A. Formal Semantics for Computer-Oriented Languages. Technical Report, Comput. Ctr., Carnegie Institute of Technology, 1964.
Lauer, P. Formal Definition of ALGOL 60. Technical Report TR 25.088, IBM Laboratory Vienna, 1968.
Lombardi, L.A. Advances in Computers, Vol. 8. Academic Press, New York, 1967.
McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P., and Levin, M.I. LISP 1.5 Programmer's Manual, M.I.T. Press, 1962.
Naur, P. (Ed.). Revised report on the algorithmic language ALGOL 60. Comm. of ACM (6) (January 1963) 1–17.
Rutishauser, H. Description of ALGOL 60. Springer, 1967.
Walk, K., Alber, K., Bandat, K., Bekic, H., Chroust, Gerhard, Kudielka, V., Oliva, P. and Zeisel, G. Abstract syntax and interpretation of PL/I. Technical Report TR 25.082, IBM Laboratory Vienna, 1968.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Futamura, Y. Partial Evaluation of Computation Process--An Approach to a Compiler-Compiler. Higher-Order and Symbolic Computation 12, 381–391 (1999). https://doi.org/10.1023/A:1010095604496
Issue Date:
DOI: https://doi.org/10.1023/A:1010095604496