skip to main content
article

Routine run-time code generation

Published:01 December 2003Publication History
Skip Abstract Section

Abstract

Run-time code generation (RTCG) would be used routinely if application programmers had a facility with which they could easily create their own run-time code generators, because it would offer benefits both in terms of the efficiency of the code that programmers would produce and the ease of producing it. Such a facility would necessarily have the following properties: it would not require that programmers know assembly language; programmers would have full control over the generated code; the code generator would operate entirely at the binary level. In this paper, we offer arguments and examples supporting these assertions. We briefly describe Jumbo, a system we have built for producing run-time code generators for Java..

References

  1. A. Bawden. Quasiquotation in Lisp. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-99). San Antonio, Texas. January 1999. 22--23.]]Google ScholarGoogle Scholar
  2. J. Bell, F. Bellegarde, J. Hook. R. B. Kieburtz, A. Kotov, J. Lewis, L. McKinney, D. P. Oliva, T. Sheard, L. Tong, L. Walton, T. Zhou. Software design for reliability and reuse: A proof-of-concept demonstration. TRI-Ada '94. 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. D Clark, D. L. Tennenhouse. Architectural Considerations for a New Generation of Protocols. ACM SIGCOMM. 1990. 200--208.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. L. Clausen. Optimizations in Distributed Run-time Compilation. Univ. of Illinois PhD thesis. 2003 (forthcoming).]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. O. Danvy, R. Glück, P. Thiemann, (eds.). Partial Evaluation. Lecture Notes in Computer Science 1110. Springer-Verlag. Heidelberg. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Engler, W. Hsieh, M. Kaashoek. 'C: A language for high- level, efficient, and machine-independent dynamic code generation. In 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '96). St. Petersburg Beach, Florida. January 1996. 131--144.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Graham. Being Popular. On-line article at www.paulgraham.com/popular.html. May 1991.]]Google ScholarGoogle Scholar
  8. P. Graham. Revenge of the Nerds. Intl. ICAD Users Group Annual Conference. Boston. May 2002. Expanded version at www.paulgraham.com/icad.html.]]Google ScholarGoogle Scholar
  9. B. Grant, M. Mock. M. Philipose, C. Chambers, S. J. Eggers. Annotation-directed run-time specialization in C. In Proc. Conf. on Partial Evaluation and Program Manipulation (PEPM). 1997. 163--178.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. U. Holzle. Adaptive optimization for Self: Reconciling High Performance with Exploratory Programming. Stanford Univ. CS Dept. Tech. Rpt. STAN-CS-TR-94--1520. 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Kamin. Standard ML as a meta-programming language. Univ. of Illinois Computer Science Dept. September, 1996. Available at www-faculty.cs.uiuc.edu/~kamin/pubs/.]]Google ScholarGoogle Scholar
  12. S. Kamin, M. Callahan, L. R. Clausen. Lightweight and generative components I: Source-level components. In Proc. First International Symposium on Generative and Component-Based Software Engineering (GCSE'99), September 28--30, 1999. 49--64.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Kamin, M. Callahan, L. R. Clausen. Lightweight and generative components II: Binary-level components. In International Workshop on Semantics, Applications, and Implementation of Program Generation (SAIG 2000). Montreal, Canada. September 20, 2000. Lecture Notes in Computer Science 1924. Springer. 2000. 28--50.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Kamin, L. R. Clausen, A. Jarvis. Jumbo: Run-time code generation for Java, and its applications. Conf. on Code Generation and Optimization (CGO). San Francisco. March 2003. 48--58.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Keller, U. Holzle. Binary Component Adaptation. UC Santa Barbara Dept. of Computer Science. Tech. Rpt. TRCS97-20. Dec. 1997.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Keppel, S. J. Eggers, R. R. Henry. A Case for Runtime Code Generation. Univ. of Washington Dept. of Computer Science and Engineering Tech. Rpt. 91-11-04. November 1991.]]Google ScholarGoogle Scholar
  17. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.-M. Loingtier, J. Irwin. Aspect-Oriented Programming. Proc. European Conference on Object- Oriented Programming (ECOOP), Finland. Springer-Verlag LNCS 1241. June 1997.]]Google ScholarGoogle Scholar
  18. T. Kistler, M. Franz. A Tree-Based Alternative to Java Byte-Codes. International Journal of Parallel Programming 27:1. February 1999. 21--34.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. G. Kniesel, P. Costanza, M. Austermann. JMangler -- A framework for load-time transformation of Java class files. Proc. IEEE International Workshop on Source Code Analysis and Manipulation. IEEE Computer Society Press. 2001.]]Google ScholarGoogle ScholarCross RefCross Ref
  20. P. Lee, M. Leone. Optimizing ML with Run-Time Code Generation. SIGPLAN Conference on Programming Language Design and Implementation. 1996. 137--148.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Luer, A. van der Hoek. Composition environments for deployable software components. UC Irvine Dept. of Information and Computer Science Tech. Rpt. 02--18. April 2002.]]Google ScholarGoogle Scholar
  22. 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
  23. C. Plinta, K. Lee, M. Rissman. A model solution for C3I message translation and validation. Software Engineering Inst. Carnegie-Mellon Univ. Tech. Rpt. CMU/SEI-89-TR-12. December 1989.]]Google ScholarGoogle Scholar
  24. M. Poletto, W. C. Hsieh, D. R. Engler, D. R., M. F. Kaashoek. 'C and tcc: a Language and Compiler for Dynamic Code Generation. Transactions on Programming Languages and Systems 21:2. March 1999. 324--369.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. U. Schultz, J. L. Lawall, C. Consel, G. Muller. Towards Automatic Specialization of Java Programs. Lecture Notes in Computer Science 1628. Springer. 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. Simonyi. The death of computer languages, the birth of Intentional Programming. Microsoft Research Tech. Rpt. MSR-TR-95-52. 1995.]]Google ScholarGoogle Scholar
  27. B. Stroustrup. Separate compilation must stay! AT&T Tech. Rpt. 1996.]]Google ScholarGoogle Scholar
  28. Sun Microsystems Incorporated. The Java hotspot performance engine architecture: A white paper about Sun's second generation performance technology. Technical report. April 1999.]]Google ScholarGoogle Scholar
  29. C. Szyperski. Component Software. ACM. New York. 1997.]]Google ScholarGoogle Scholar
  30. W. Taha, T. Sheard. Multi-stage programming with explicit annotations. In Proc. ACM SIGPLAN Symp. on Partial Evaluation and Semantics-Based Program Manipulation (PEPM). ACM SIGPLAN Notices 32: 12. New York. June 12--13, 1997. 203--217.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Routine run-time code generation

    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

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 38, Issue 12
      December 2003
      82 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/966051
      Issue’s Table of Contents

      Copyright © 2003 Author

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 December 2003

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader