skip to main content
10.1145/1014007.1014015acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
Article

Invited application paper: program generation considered easy

Published:24 August 2004Publication History

ABSTRACT

Programmers frequently write program generators using the simple model of programs as text. The essence of this approach is its lack of structure. For this reason, it gets no respect from academic researchers. But the flip side of lacking structure is freedom from restrictions. We argue that the latter is important, and perhaps essential, in finding a willing audience for program generation among working programmers. Jumbo is a system for producing run-time program generators, which is designed to offer the programmer a "programs as strings" model to as great an extent as possible, though some constraints are inevitable. We show by several examples that these constraints still allow for both a natural and a powerful program generation model. We then discuss how the approach taken by Jumbo, though possessing less structure than some competing methods, still raises scientific problems that ought to be of interest to researchers in this area.

References

  1. T. B. Aktemur, J. Jones, S. Kamin, L. Clausen. Optimizing marshalling by run time program generation. In preparation. 2004.Google ScholarGoogle Scholar
  2. G. Attardi, A. Cisternino, A. Kennedy. CodeBricks: code fragments as building blocks. PEPM 2003. San Diego, CA. 66--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. L. Clausen. Optimizations in Distributed Run-time Compilation. Univ. of Illinois PhD thesis. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Cordes, M. Brown. The Literate-Programming Paradigm. IEEE Computer 24:6. June 1991. 52--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Engler, W. Hsieh, M. Kaashoek. 'C: A language for high-level, efficient, and machine-independent dynamic code generation. Proc. 23 rd POPL. St. Petersburg Beach, Florida. January 1996. 131--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Frigo, S.G. Johnson. FFTW: An Adaptive Software Architecture for the FFT. Int. Conf. on Acoustics, Speech, and Signal Processing (ICASSP). 1998. 1381--1384.Google ScholarGoogle Scholar
  7. E. Gamma, R. Helm. R. Johnson, J. Vlissides. Design Patterns. Addison-Wesley. Reading, Mass. 1995.Google ScholarGoogle Scholar
  8. J.Hannemann, G. Kiczales. Design Pattern Implementation in Java and AspectJ. Proc. 17th OOPSLA. November 2002. 161--173. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Kamin. Routine Run-time Code Generation. Proc. 18th OOPSLA (Onward! Track). November 2003. 208--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, W. G. Griswold. An Overview of AspectJ. Proc. ECOOP. Springer-Verlag. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D.E. Knuth. Literate Programming. Computer J. 27:2. May 1984. 97--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D.E. Knuth, Computers & Typesetting, Volume B: TeX: The Program. Addison-Wesley. Reading, Massachusetts. 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D.E. Knuth, Computers & Typesetting, Volume D: METAFONT: The Program. Addison-Wesley. Reading, Massachusetts. 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G.T. Leavens, A.L. Baker, and C. Ruby. Preliminary Design of JML: A Behavioral Interface Specification Language for Java. Department of Computer Science, Iowa State University, TR #98-06x. November 2003.Google ScholarGoogle Scholar
  15. Y. Oiwa, H. Masuhara, A. Yonezawa. DynJava: Type Safe Dynamic Code Generation in Java. 3rd JSSST Workshop on Programming and Programming Languages (PPL2001). March 2001.Google ScholarGoogle Scholar
  16. R. Sedgewick, K. Wayne. Introduction to Computer Science. Online textbook available at www.cs.princeton.edu/introcs/home/. 2004.Google ScholarGoogle Scholar
  17. Y. Smaragdakis, D. Batory. Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. On Software Eng. And Methodology 11(2). April 2002. 215--255. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. W. Taha, T. Sheard. Multi-stage programming with explicit annotations. In Proc. PEPM '97. ACM SIGPLAN Notices 32: 12. New York. June 12-13, 1997. 203--217. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Invited application paper: program generation considered easy

    Recommendations

    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
      PEPM '04: Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
      August 2004
      212 pages
      ISBN:1581138350
      DOI:10.1145/1014007

      Copyright © 2004 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: 24 August 2004

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate66of120submissions,55%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader