skip to main content
10.1145/165180.165227acmconferencesArticle/Chapter ViewAbstractPublication PagesfpcaConference Proceedingsconference-collections
Article
Free Access

Compiling actions by partial evaluation

Published:01 July 1993Publication History
First page image

References

  1. 1.Lars Ole Andersen. Self-applicable C program speciaJizttion. In Proc. of Workshop on Partial Eval. uation and Semantics. Based Program Manipulation (PEPM'9~), pages 54-61, June 1992. (Technical Report YALEU/DCS/RR.909, Yale University).Google ScholarGoogle Scholar
  2. 2.Anders Bondoff. Automatic autoprojection of higher order recursive equations. Science of Computer Programming, 17(1-3):3-34, December 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Anders Bondorf. Improving binding times without expUcit cps-conversion. In 199~ A CM Conference on Lisp and Functional Programming. San Francisco, California. LISP Pointers V, 1, pages 1-10, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Anders Bondorf. Similiz 5.0 Manual DIKU, University of Copenhagen, Denmark, April 1993. Included in Similix 5.0 distribution.Google ScholarGoogle Scholar
  5. 5.Anders Bondorf and Olivier Dairy. Automatic autoprojection of recursive equations with global variables and abstract data types. Science of Computer Programruing, 16:151-195, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Deryck F. Brown, Herma~o Mourn, and David A. Watt. Actress: an action semantics directed compiler yenerator. In Proc. CC'9~, 4th International Conference on Compiler Construction, Paderborn, Germany, pages 95-109. Springer-Verlag (LNCS 641), 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Carsten K. Gomard. A self-appllcable partial evaluatot for the lambda calculus: Correctness and pragmatics. A CM Transactions on Programming Languages and Systems, 14(2):147-172, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Jesper JZrgensen. Generating a compiler for a lazy language by partial evaluation. In Nineteenth Annual A CM SIGACT-SIGPLAN Symposium on Principles of Programming Languages. Albuquerque, New Mexico, pages 258-268, January 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Peter Lee. Realistic Compiler Generation. MIT Press, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Karoline MaImkjmr. Towards efficient partial eva}- uation. In Proc. PEPM'9$, Partial Evaluation and Semantics. Based Program Manipulation, Copenhagen, Denmark, 1993. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Peter D. Mosses. SIS--semantics implementation systern. Technical Report Daimi MD-30, Computer Science Department, Aarhus University, 1979. Out of print.Google ScholarGoogle Scholar
  12. 12.Peter D. Mosses. Unified algebras and action sementics. In Proc. STACS'89, pages 17-35. Springer-Verlag (LNCS 349), 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Peter D. Mosses. An introduction to action semantics. Technical Report DAIMI P B-370, Computer Science Department, Aarhus University, 1991. Lecture Notes for the Marktoberdorf'91 Summer School, to be published in the Proceedings of the Summer School by Springer-Verlag (Series F).Google ScholarGoogle ScholarCross RefCross Ref
  14. 14.Peter D. Mosses. Action Semantics. Cambridge Universify Press, 1992. Number ~6 Tracts in Theoretical Computer Science. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Peter D. Mosses and David A. Watt. The use of action semantics. In Proc. IFIP TC~ Working Conference on Formal Description of Programming Concepts III (Gl. Avern~s, 1986), pages 135-163. North-Holland, 1987.Google ScholarGoogle Scholar
  16. 16.Jens Palsberg. An automatically generated and provably correct compiler for a subset of Ads. In Proc. ICCL'9~, Fourth iEEE international Conference on Computer Languages, pages 117-126, Oakland, California, April 1992.Google ScholarGoogle Scholar
  17. 17.Jens Palsberg. Provably Correct Compiler Generation. PhD thesis, Computer Science Department, Aarhus University, 1992.Google ScholarGoogle Scholar
  18. 18.Jens Palsberg. A provably correct compiler generator. in Proc. ESOP'9~, European Symposium on Programming, pages 418-434. Springer-Verlag (LNCS 582), Rennes, France, February 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Lawrence Paulson. A semantics-directed compiler yenerator. In Ninth Symposium on Principles of Programruing Languages, pages 224-233. ACM Press, January 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.Mitchell Wa~d. Specifying the correctness of binding time analysis. Journal of Functional Programming, Special Issue on Partial Evaluation. To appear.Google ScholarGoogle Scholar
  21. 21.Mitchell Wand. A semantic prototyping system. In Proc. A CM SIGPLAN'84 Symposium on Compiler Construction, pages 213-221. Sigplan Notices, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.David A. Watt. Programming Language Syntax and Semantics. Prentice-Hall, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.David A. Watt. Personal communication. 1992.Google ScholarGoogle Scholar

Index Terms

  1. Compiling actions by partial evaluation

            Recommendations

            Reviews

            Herbert G. Mayer

            For researchers and developers interested in compiler generation based on action semantics, Bondorf and Palsberg present fascinating material; I only wish more detail had been offered. The authors have advanced the state of the art of compiler generation by obtaining an action compiler via partial evaluation of an action interpreter. Their method is simpler than the method employed in two other instances cited in the paper. Surprisingly, the described action compiler produces Scheme, yet the emitted code runs as fast as that generated by other action compilers that produce C or machine code. This suggests a potential for great future advances. The authors argue convincingly that action semantics is a better basis for semantics-directed compiler generation than denotation semantics. The paper progresses from general topics to specifics and starts by explaining the essence of action semantics. Section 3 outlines the action interpreter, written in Scheme, while section 4 describes how binding times were improved to increase execution speed. The remaining sections analyze the compiler's performance and offer ideas for future work. The appendix is unusually long and consists mainly of the Scheme listing of the action interpreter. A few parts of the paper remain unclear, largely because of the author's reliance on Scheme source code. Starting with section 3, the level of detail of the discussion sinks to nitty-gritty references to the appended Scheme code, yet only readers who understand Scheme and are familiar with the context will be able to follow it. Also, a speedup factor of five used in the section on performance evaluation remains somewhat mysterious; a paragraph later, the factor is discounted again in another comparison. Despite these minor shortcomings (and a few typos), the paper is a treasure. The work is fascinating. These barely five pages of text grant a small glimpse into a world that may be the beginning of a new way to generate compilers automatically, though it is clear that the road may be long. Another significant research goal is the early focus on correctness proofs, something not even considered in most current, handcrafted compilers. This paper is a must-read for anyone interested in the automatic generation of compilers that are provably correct. Since it is so short, however, the references, including Palsbe rg's Ph.D. thesis, may be even more significant for anyone wishing to participate in this great adventure.

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              FPCA '93: Proceedings of the conference on Functional programming languages and computer architecture
              July 1993
              350 pages
              ISBN:089791595X
              DOI:10.1145/165180

              Copyright © 1993 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 July 1993

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader