Skip to main content Accessibility help

Generating action compilers by partial evaluation

  • Anders Bondorf (a1) and Jens Palsberg (a2)


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.



Hide All
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).
Bondorf, A. (1991) Automatic autoprojection of higher order recursive equations. Science of Computer Programming, 17(1–3):334.
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.
Bondorf, A. (1993) Similix 5.0 Manual. DIKU, University of Copenhagen, Denmark. Included in Similix 5.0 distribution.
Bondorf, A. and Danvy, O. 1991) Automatic autoprojection of recursive equations with global variables and abstract data types. Science of Computer Programming, 16:151195.
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).
Consel, C and Danvy, O. (1991) Static and dynamic semantics processing. In Eighteenth Symposium on Principles of Programming Languages, pp. 1424.
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.
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.
Jones, N. D., Gomard, C. K. and Sestoft, P. (1993) Partial Evaluation and Automatic Program Generation. Prentice-Hall International.
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).
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.
Lee, P. (1989) Realistic Compiler Generation. MIT Press.
Malmkjær, K. (1993) Towards efficient partial evaluation. In Proc. PEPM'93, Partial Evaluation and Semantics-Based Program Manipulation, Copenhagen, Denmark.
Mosses, P. D. (1979) SIS—semantics implementation system. Technical Report Daimi MD–30, Computer Science Department, Aarhus University.
Mosses, P. D. (1989) Unified algebras and action semantics. In Proc. STACS'89, pp. 1735. Springer-Verlag (LNCS 349).
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).
Mosses, P. D. (1992) Action Semantics. Cambridge University Press. Number 26 Tracts in Theoretical Computer Science.
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.
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.
Palsberg, J. (1992b) Provably Correct Compiler Generation. PhD thesis, Computer Science Department, Aarhus University.
Palsberg, J. (1992c) A provably correct compiler generator. In Proc. ESOP'92, European Symposium on Programming, pp. 418434. Springer-Verlag (LNCS 582).
Paulson, L. (1982). A semantics-directed compiler generator. In Ninth Symposium on Principles of Programming Languages, pp. 224233)
Wand, M. (1984) A semantic prototyping system. In Proc. ACM SIGPLAN'84 Symposium on Compiler Construction, pp. 213221. Sigplan Notices.
Wand, M. (1993) Specifying the correctness of binding-time analysis. Journal of Functional Programming, 3(3):365387.
Watt, D. A. (1991) Programming Language Syntax and Semantics. Prentice-Hall.
Watt, D. A. (1992) Personal communication.

Related content

Powered by UNSILO

Generating action compilers by partial evaluation

  • Anders Bondorf (a1) and Jens Palsberg (a2)


Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed.

Generating action compilers by partial evaluation

  • Anders Bondorf (a1) and Jens Palsberg (a2)
Submit a response


No Discussions have been published for this article.


Reply to: Submit a response

Your details

Conflicting interests

Do you have any conflicting interests? *