Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Routine run-time code generation

Published: 01 December 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. Glück, 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. 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
  • (2021)Run-Time Class Generation: Algorithms for Difference of Homogeneous and Inhomogeneous ClassesInformation and Software Technologies10.1007/978-3-030-88304-1_18(224-240)Online publication date: 7-Oct-2021
  • (2020)Run-Time Class Generation: Algorithm for Decomposition of Homogeneous ClassesInformation and Software Technologies10.1007/978-3-030-59506-7_20(243-254)Online publication date: 8-Oct-2020
  • (2019)Run-time Class Generation: Algorithms for Intersection of Homogeneous and Inhomogeneous Classes2019 IEEE 14th International Conference on Computer Sciences and Information Technologies (CSIT)10.1109/STC-CSIT.2019.8929736(272-277)Online publication date: Sep-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 2003
Published in SIGPLAN Volume 38, Issue 12

Check for updates

Author Tags

  1. Java
  2. run-time code generation

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Run-Time Class Generation: Algorithms for Difference of Homogeneous and Inhomogeneous ClassesInformation and Software Technologies10.1007/978-3-030-88304-1_18(224-240)Online publication date: 7-Oct-2021
  • (2020)Run-Time Class Generation: Algorithm for Decomposition of Homogeneous ClassesInformation and Software Technologies10.1007/978-3-030-59506-7_20(243-254)Online publication date: 8-Oct-2020
  • (2019)Run-time Class Generation: Algorithms for Intersection of Homogeneous and Inhomogeneous Classes2019 IEEE 14th International Conference on Computer Sciences and Information Technologies (CSIT)10.1109/STC-CSIT.2019.8929736(272-277)Online publication date: Sep-2019
  • (2019)Run-Time Class Generation: Algorithms for Union of Homogeneous and Inhomogeneous ClassesInformation and Software Technologies10.1007/978-3-030-30275-7_12(148-160)Online publication date: 3-Oct-2019
  • (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)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

View Options

Get Access

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