[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/949344.949401acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Routine run-time code generation

Published: 26 October 2003 Publication History

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.]]
[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.]]
[3]
D.D Clark, D.L. Tennenhouse. Architectural Considerations for a New Generation of Protocols. ACM SIGCOMM. 1990. 200--208.]]
[4]
L. Clausen. Optimizations in Distributed Run-time Compilation. Univ. of Illinois PhD thesis. 2003 (forthcoming).]]
[5]
O. Danvy, R. Gluck, P. Thiemann, (eds.). Partial Evaluation. Lecture Notes in Computer Science 1110. Springer-Verlag. Heidelberg. 1996.]]
[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.]]
[7]
P. Graham. Being Popular. On-line article at www.paulgraham.com/popular.html. May 1991.]]
[8]
P. Graham. Revenge of the Nerds. Intl. ICAD Users Group Annual Conference. Boston. May 2002. Expanded version at www.paulgraham.com/icad.html.]]
[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.]]
[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.]]
[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/.]]
[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.]]
[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.]]
[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.]]
[15]
R. Keller, U. Holzle. Binary Component Adaptation. UC Santa Barbara Dept. of Computer Science. Tech. Rpt. TRCS97-20. Dec. 1997.]]
[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.]]
[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.]]
[18]
T. Kistler, M. Franz. A Tree-Based Alternative to Java Byte-Codes. International Journal of Parallel Programming 27:1. February 1999. 21--34.]]
[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 <http://computer.org>. 2001.]]
[20]
P. Lee, M. Leone. Optimizing ML with Run-Time Code Generation. SIGPLAN Conference on Programming Language Design and Implementation. 1996. 137--148]]
[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.]]
[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.]]
[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.]]
[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.]]
[25]
U. Schultz, J. L. Lawall, C. Consel, G. Muller. Towards Automatic Specialization of Java Programs. Lecture Notes in Computer Science 1628. Springer. 1999.]]
[26]
C. Simonyi. The death of computer languages, the birth of Intentional Programming. Microsoft Research Tech. Rpt. MSR-TR-95-52. 1995.]]
[27]
B. Stroustrup. Separate compilation must stay! AT&T Tech. Rpt. 1996.]]
[28]
Sun Microsystems Incorporated. The Java hotspot performance engine architecture: A white paper about Sun's second generation performance technology. Technical report. April 1999.]]
[29]
C. Szyperski. Component Software. ACM. New York. 1997.]]
[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.]]

Cited By

View all
  • (2016)Autotuning Runtime Specialization for Sparse Matrix-Vector MultiplicationACM Transactions on Architecture and Code Optimization10.1145/285150013:1(1-26)Online publication date: 28-Mar-2016
  • (2006)Reflective program generation with patternsProceedings of the 5th international conference on Generative programming and component engineering10.1145/1173706.1173748(275-284)Online publication date: 22-Oct-2006
  • (2006)MumboElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2005.06.036147:1(31-55)Online publication date: 1-Jan-2006
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2003
418 pages
ISBN:1581137516
DOI:10.1145/949344
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 October 2003

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Java
  2. run-time code generation

Qualifiers

  • Article

Conference

OOPSLA03
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2016)Autotuning Runtime Specialization for Sparse Matrix-Vector MultiplicationACM Transactions on Architecture and Code Optimization10.1145/285150013:1(1-26)Online publication date: 28-Mar-2016
  • (2006)Reflective program generation with patternsProceedings of the 5th international conference on Generative programming and component engineering10.1145/1173706.1173748(275-284)Online publication date: 22-Oct-2006
  • (2006)MumboElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2005.06.036147:1(31-55)Online publication date: 1-Jan-2006
  • (2005)A language for the compact representation of multiple program versionsProceedings of the 18th international conference on Languages and Compilers for Parallel Computing10.1007/978-3-540-69330-7_10(136-151)Online publication date: 20-Oct-2005
  • (2005)Source-level optimization of run-time program generatorsProceedings of the 4th international conference on Generative Programming and Component Engineering10.1007/11561347_20(293-308)Online publication date: 29-Sep-2005
  • (2005)Optimizing marshalling by run-time program generationProceedings of the 4th international conference on Generative Programming and Component Engineering10.1007/11561347_16(221-236)Online publication date: 29-Sep-2005
  • (2004)Invited application paperProceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation10.1145/1014007.1014015(68-79)Online publication date: 24-Aug-2004
  • (2004)Using invariants to optimize formal specifications before code synthesisProceedings of the Second ACM/IEEE International Conference on Formal Methods and Models for Co-Design10.1109/MEMCOD.2004.1459821(73-82)Online publication date: 1-Jan-2004

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media