Hostname: page-component-76fb5796d-9pm4c Total loading time: 0 Render date: 2024-04-26T10:08:11.224Z Has data issue: false hasContentIssue false

Generating action compilers by partial evaluation

Published online by Cambridge University Press:  07 November 2008

Anders Bondorf
Affiliation:
DIKU, Department of Computer Science, Universitetsparken 1, DK-2100 Copenhagen Ø, Denmark (e-mail: anders@diku.dk)
Jens Palsberg
Affiliation:
Computer Science Department, Aarhus University, DK-8000 Aarhus C, Denmark (e-mail: palsberg@daimi.aau.dk)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Compiler generation based on Mosses' action semantics has been studied by Brown, Moura, and Watt, and also by the second author. The core of each of their systems is a handwritten action compiler, producing either C or machine code. We have obtained an action compiler in a much simpler way: by partial evaluation of an action interpreter. Even though our compiler produces Scheme code, the code runs as fast as that produced by the previous action compilers.

Type
Articles
Copyright
Copyright © Cambridge University Press 1996

References

Andersen, L. O. (1992) Self-applicable C program specialization. In Proc. of PEPM'92, Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pp. 5461. (Technical Report YALEU/DCS/RR-909, Yale University).Google Scholar
Bondorf, A. (1991) Automatic autoprojection of higher order recursive equations. Science of Computer Programming, 17(1–3):334.CrossRefGoogle Scholar
Bondorf, A. (1992) Improving binding times without explicit cps-conversion. In 1992 ACM Conference on Lisp and Functional Programming.San Francisco, California. LISP Pointers V, 1, pp. 110.CrossRefGoogle Scholar
Bondorf, A. (1993) Similix 5.0 Manual. DIKU, University of Copenhagen, Denmark. Included in Similix 5.0 distribution.Google Scholar
Bondorf, A. and Danvy, O. 1991) Automatic autoprojection of recursive equations with global variables and abstract data types. Science of Computer Programming, 16:151195.CrossRefGoogle Scholar
Brown, D. F., Moura, H. and Watt, D. A. (1992) Actress: an action semantics directed compiler generator. In Proc. CC'92, 4th International Conference on Compiler Construction, Paderborn,Germany, pp. 95109. Springer-Verlag (LNCS 641).CrossRefGoogle Scholar
Consel, C and Danvy, O. (1991) Static and dynamic semantics processing. In Eighteenth Symposium on Principles of Programming Languages, pp. 1424.CrossRefGoogle Scholar
Danvy, O., Malmkjær, K. and Palsberg, J. (1994) The essence of eta-expansion in partial evaluation. Lisp and Symbolic Computation. To appear. Also in Proc. PEPM'94, ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pp. 11–20.Google Scholar
Gomard, C. K. (1991) A self-applicable partial evaluator for the lambda calculus: Correctness and pragmatics. ACM Transactions on Programming Languages and Systems, 14(2):147172.CrossRefGoogle Scholar
Jones, N. D., Gomard, C. K. and Sestoft, P. (1993) Partial Evaluation and Automatic Program Generation. Prentice-Hall International.Google Scholar
Jones, N. D., Sestoft, P. and Søndergaard, H. (1985) An experiment in partial evaluation: The generation of a compiler generator. In Jouannaud, J.-P., editor, Proc. Rewriting Techniques and Applications, pp. 225282. Springer-Verlag (LNCS 202).Google Scholar
Jørgensen, J. (1992) Generating a compiler for a lazy language by partial evaluation. In Nineteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages.Albuquerque, New Mexico, pp. 258268.CrossRefGoogle Scholar
Lee, P. (1989) Realistic Compiler Generation. MIT Press.Google Scholar
Malmkjær, K. (1993) Towards efficient partial evaluation. In Proc. PEPM'93, Partial Evaluation and Semantics-Based Program Manipulation, Copenhagen, Denmark.Google Scholar
Mosses, P. D. (1979) SIS—semantics implementation system. Technical Report Daimi MD–30, Computer Science Department, Aarhus University.Google Scholar
Mosses, P. D. (1989) Unified algebras and action semantics. In Proc. STACS'89, pp. 1735. Springer-Verlag (LNCS 349).CrossRefGoogle Scholar
Mosses, P. D. (1991) An introduction to action semantics. Technical Report DAIMI PB–370, Computer Science Department, Aarhus University. Lecture Notes for the Marktoberdorf'91 Summer School, to be published in the Proceedings of the Summer School by Springer-Verlag (Series F).CrossRefGoogle Scholar
Mosses, P. D. (1992) Action Semantics. Cambridge University Press. Number 26 Tracts in Theoretical Computer Science.CrossRefGoogle Scholar
Mosses, P. D. and Watt, D. A. (1987) The use of action semantics. In Proc. IFIP TC2 Working Conference on Formal Description of Programming Concepts III (Gl. Avernæs, 1986), pp. 135163. North-Holland.Google Scholar
Palsberg, J. (1992 a) An automatically generated and provably correct compiler for a subset of Ada. In Proc. ICCL'92, Fourth IEEE International Conference on Computer Languages, pp. 117126.CrossRefGoogle Scholar
Palsberg, J. (1992b) Provably Correct Compiler Generation. PhD thesis, Computer Science Department, Aarhus University.CrossRefGoogle Scholar
Palsberg, J. (1992c) A provably correct compiler generator. In Proc. ESOP'92, European Symposium on Programming, pp. 418434. Springer-Verlag (LNCS 582).CrossRefGoogle Scholar
Paulson, L. (1982). A semantics-directed compiler generator. In Ninth Symposium on Principles of Programming Languages, pp. 224233)CrossRefGoogle Scholar
Wand, M. (1984) A semantic prototyping system. In Proc. ACM SIGPLAN'84 Symposium on Compiler Construction, pp. 213221. Sigplan Notices.CrossRefGoogle Scholar
Wand, M. (1993) Specifying the correctness of binding-time analysis. Journal of Functional Programming, 3(3):365387.CrossRefGoogle Scholar
Watt, D. A. (1991) Programming Language Syntax and Semantics. Prentice-Hall.Google Scholar
Watt, D. A. (1992) Personal communication.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.