|
ABSTRACT
Software systems have been using "just-in-time" compilation (JIT) techniques since the 1960s. Broadly, JIT compilation includes any translation performed dynamically, after a program has started execution. We examine the motivation behind JIT compilation and constraints imposed on JIT compilation systems, and present a classification scheme for such systems. This classification emerges as we survey forty years of JIT work, from 1960--2000.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
Ali-Reza Adl-Tabatabai , Michał Cierniak , Guei-Yuan Lueh , Vishesh M. Parikh , James M. Stichnoth, Fast, effective code generation in a just-in-time Java compiler, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.280-290, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
3
|
|
| |
4
|
|
 |
5
|
Ole Agesen , Urs Hölzle, Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.91-107, October 15-19, 1995, Austin, Texas, United States
|
| |
6
|
Altman, E., Gschwind, M., Sathaye, S., Kosonocky, S., Bright, A., Fritts, J., Ledak, P., Appenzeller, D., Agricola, C., and Filan, Z. 2000a. BOA: The architecture of a binary translation processor. Tech. Rep. RC 21665, IBM Research Division, Yorktown Heights, NY.
|
| |
7
|
|
 |
8
|
|
 |
9
|
Joel Auslander , Matthai Philipose , Craig Chambers , Susan J. Eggers , Brian N. Bershad, Fast, effective dynamic compilation, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.149-159, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
 |
10
|
Ana Azevedo , Alex Nicolau , Joe Hummel, Java annotation-aware just-in-time (AJIT) complilation system, Proceedings of the ACM 1999 conference on Java Grande, p.142-151, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304115]
|
| |
11
|
Bala, V., Duesterwald, E., and Banerjia, S. 1999. Transparent dynamic optimization. Tech. Rep. HPL-1999-77, Hewlett-Packard, Polo Alto, CA.
|
| |
12
|
Bartlett, J. 1992. Familiar Quotations (16th ed.). J. Kaplan, Ed. Little, Brown and Company, Boston, MA.
|
 |
13
|
|
| |
14
|
Bentley, J. 1988. Little languages. In More Programming Pearls. Addison-Wesley, Reading, MA, 83--100.
|
| |
15
|
Bik, A. J. C., Girkar, M., and Haghighat, M. R. 1999. Experiences with Java JIT optimization. In Innovative Architecture for Future Generation High-Performance Processors and Systems. IEEE Computer Society Press, Los Alamitos, CA, 87--94.
|
| |
16
|
Brown, P. J. 1976. Throw-away compiling. Softw.---Pract. Exp. 6, 423--434.
|
| |
17
|
Brown, P. J. 1990. Writing Interactive Compilers and Interpreters. Wiley, New York, NY.
|
| |
18
|
|
 |
19
|
Michael G. Burke , Jong-Deok Choi , Stephen Fink , David Grove , Michael Hind , Vivek Sarkar , Mauricio J. Serrano , V. C. Sreedhar , Harini Srinivasan , John Whaley, The Jalapeño dynamic optimizing compiler for Java, Proceedings of the ACM 1999 conference on Java Grande, p.129-141, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304113]
|
 |
20
|
|
| |
21
|
|
 |
22
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
 |
23
|
|
 |
24
|
Craig Chambers , David Ungar, Making pure object-oriented languages practical, Conference proceedings on Object-oriented programming systems, languages, and applications, p.1-15, October 06-11, 1991, Phoenix, Arizona, United States
|
 |
25
|
C. Chambers , D. Ungar , E. Lee, An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes, Conference proceedings on Object-oriented programming systems, languages and applications, p.49-70, October 02-06, 1989, New Orleans, Louisiana, United States
|
| |
26
|
Chen, W.-K., Lerner, S., Chaiken, R., and Gillies, D. M. 2000. Mojo: a dynamic optimization system. In Proceedings of the Third ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-3, Dec. 2000).
|
| |
27
|
|
 |
28
|
|
 |
29
|
C. Consel , L. Hornof , R. Marlet , G. Muller , S. Thibault , E.-N. Volanschi , J. Lawall , J. Noyé, Tempo: specializing systems applications and beyond, ACM Computing Surveys (CSUR), v.30 n.3es, Sept. 1998
[doi> 10.1145/289121.289140]
|
 |
30
|
|
| |
31
|
Timothy Cramer , Richard Friedman , Terrence Miller , David Seberger , Robert Wilson , Mario Wolczko, Compiling Java Just in Time, IEEE Micro, v.17 n.3, p.36-43, May 1997
[doi> 10.1109/40.591653]
|
| |
32
|
Dakin, R. J. and Poole, P. C. 1973. A mixed code approach. The Comput. J. 16, 3, 219--222.
|
| |
33
|
Dawson, J. L. 1973. Combining interpretive code with machine code. The Comput. J. 16, 3, 216--219.
|
| |
34
|
Deaver, D., Gorton, R., and Rubin, N. 1999. Wiggins/Redstone: An on-line program specializer. In Proceedings of the IEEE Hot Chips XI Conference (Aug. 1999). IEEE Computer Society Press, Los, Alamitos, CA.
|
 |
35
|
|
| |
36
|
|
| |
37
|
Ebcioğlu, K. and Altman, E. R. 1996. DAISY: Dynamic compilation for 100% architectural compatibility. Tech. Rep. RC 20538. IBM Research Division, Yorktown Heights, NY.
|
 |
38
|
|
 |
39
|
Dawson R. Engler, VCODE: a retargetable, extensible, very fast dynamic code generation system, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.160-170, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
 |
40
|
|
 |
41
|
Dawson R. Engler , Wilson C. Hsieh , M. Frans Kaashoek, C: a language for high-level, efficient, and machine-independent dynamic code generation, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.131-144, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237765]
|
 |
42
|
Dawson R. Engler , Todd A. Proebsting, DCG: an efficient, retargetable dynamic code generation system, Proceedings of the sixth international conference on Architectural support for programming languages and operating systems, p.263-272, October 05-07, 1994, San Jose, California, United States
|
| |
43
|
Franz, M. 1994. Code-generation on-the-fly: A key to portable software. Ph.D. dissertation. ETH Zurich, Zurich, Switzerland.
|
 |
44
|
|
 |
45
|
|
| |
46
|
|
| |
47
|
Geppert, L. and Perry, T. S. 2000. Transmeta's magic show. IEEE Spectr. 37, 5 (May), 26--33.
|
| |
48
|
|
| |
49
|
Gorton, R. 2001. Private communication.
|
| |
50
|
Gosling, J. 2001. Private communication.
|
| |
51
|
|
| |
52
|
Hammond, J. 1977. BASIC---an evaluation of processing methods and a study of some programs. Softw.---Pract. Exp. 7, 697--711.
|
| |
53
|
|
| |
54
|
|
| |
55
|
|
| |
56
|
Hölzle, U. 1994. Adaptive optimization for Self: Reconciling high performance with exploratory programming. Ph.D. dissertation. Carnegie-Mellon University, Pittsburgh, PA.
|
 |
57
|
|
 |
58
|
Urs Hölzle , David Ungar, A third-generation SELF implementation: reconciling responsiveness with performance, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.229-243, October 23-28, 1994, Portland, Oregon, United States
|
 |
59
|
Kazuaki Ishizaki , Motohiro Kawahito , Toshiaki Yasue , Mikio Takeuchi , Takeshi Ogasawara , Toshio Suganuma , Tamiya Onodera , Hideaki Komatsu , Toshio Nakatani, Design, implementation, and evaluation of optimizations in a just-in-time compiler, Proceedings of the ACM 1999 conference on Java Grande, p.119-128, June 12-14, 1999, San Francisco, California, United States
[doi> 10.1145/304065.304111]
|
 |
60
|
Erik Johansson , Mikael Pettersson , Konstantinos Sagonas, A high performance Erlang system, Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming, p.32-43, September 20-23, 2000, Montreal, Quebec, Canada
[doi> 10.1145/351268.351273]
|
 |
61
|
|
| |
62
|
|
 |
63
|
|
| |
64
|
Keppel, D., Eggers, S. J., and Henry, R. R. 1991. A case for runtime code generation. Tech. Rep. 91-11-04. Department of Computer Science and Engineering, University of Washington, Seattle, WA.
|
| |
65
|
|
| |
66
|
|
| |
67
|
Kistler, T. 2001. Private communication.
|
| |
68
|
Kistler, T. and Franz, M. 1999. The case for dynamic optimization: Improving memory-hierarchy performance by continuously adapting the internal storage layout of heap objects at run-time. Tech. Rep. 99-21 (May). University of California, Irvine, Irvine, CA. Revised September, 1999.
|
| |
69
|
Klaiber, A. 2000. The technology behind Crusoe processors. Tech. Rep. (Jan.), Transmeta Corporation, Santa Clara, CA.
|
| |
70
|
Knuth, D. E. 1971. An empirical study of Fortran programs. Softw.---Pract. Exp. 1, 105--133.
|
| |
71
|
|
| |
72
|
Krall, A. and Grafl, R. 1997. A Java just-in-time compiler that transcends JavaVM's 32 bit barrier. In Proceedings of PPoPP '97 Workshop on Java for Science and Engineering.
|
 |
73
|
|
 |
74
|
Seungll Lee , Byung-Sun Yang , Suhyun Kim , Seongbae Park , Soo-Mook Moon , Kemal Ebcioğlu , Erik Altman, Efficient Java exception handling in just-in-time compilation, Proceedings of the ACM 2000 conference on Java Grande, p.1-8, June 03-04, 2000, San Francisco, California, United States
[doi> 10.1145/337449.337453]
|
| |
75
|
Leone, M. and Dybvig, R. K. 1997. Dynamo: A staged compiler architecture for dynamic program optimization. Tech. Rep. 490. Computer Science Department, Indiana University, Bloomington, IN.
|
| |
76
|
Leone, M. and Lee, P. 1994. Lightweight run-time code generation. In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. 97--106.
|
 |
77
|
Renaud Marlet , Charles Consel , Philippe Boinot, Efficient incremental run-time specialization for free, Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation, p.281-292, May 01-04, 1999, Atlanta, Georgia, United States
|
| |
78
|
Mauriello, R. 2000. Private communication.
|
 |
79
|
|
 |
80
|
|
 |
81
|
|
 |
82
|
|
| |
83
|
|
| |
84
|
Mitchell, J. G. 2000. Private communication.
|
| |
85
|
Mitchell, J. G., Perlis, A. J., and van Zoeren, H. R. 1968. LC2: A language for conversational computing. In Interactive Systems for Experimental Applied Mathematics, M. Klerer and J. Reinfelds, Eds. Academic Press, New York, NY. (Proceedings of 1967 ACM Symposium.)
|
| |
86
|
Mock, M., Berryman, M., Chambers, C., and Eggers, S. J. 1999. Calpa: A tool for automating dynamic compilation. In Proceedings of the Second ACM Workshop on Feedback-Directed and Dynamic Optimization. 100--109.
|
| |
87
|
Ng, T. S. and Cantoni, A. 1976. Run time interaction with FORTRAN using mixed code. The Comput. J. 19, 1, 91--92.
|
 |
88
|
|
 |
89
|
|
 |
90
|
|
 |
91
|
Massimiliano Poletto , Dawson R. Engler , M. Frans Kaashoek, tcc: a system for fast, flexible, and high-level dynamic code generation, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.109-121, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
92
|
Ramsey, N. and Fernández, M. 1995. The New Jersey machine-code toolkit. In Proceedings of the 1995 USENIX Technical Conference. 289--302.
|
 |
93
|
|
| |
94
|
Rémy, D., Leroy, X., and Weis, P. 1999. Objective Caml---a general purpose high-level programming language. ERCIM News 36, 29--30.
|
| |
95
|
|
 |
96
|
|
| |
97
|
|
| |
98
|
|
| |
99
|
Sun Microsystems. 2001. The Java HotSpot virtual machine. White paper. Sun Microsystems, Santa Clara, CA.
|
| |
100
|
|
 |
101
|
|
| |
102
|
Transmeta Corporation. 2001. Code morphing software. Available online at http://www. transmeta.com/echnology/architecture/code_morphing.html. Transmeta Corporation, Santa Clara, CA.
|
 |
103
|
|
 |
104
|
|
 |
105
|
David Ungar , Randall B. Smith, Self: The power of simplicity, Conference proceedings on Object-oriented programming systems, languages and applications, p.227-242, October 04-08, 1987, Orlando, Florida, United States
|
| |
106
|
David Ungar , Randall B. Smith , Craig Chambers , Urs Hölzle, Object, Message, and Performance: How they Coexist in Self, Computer, v.25 n.10, p.53-64, October 1992
[doi> 10.1109/2.161280]
|
| |
107
|
University of Michigan. 1966a. The System Loader. In University of Michigan Executive System for the IBM 7090 Computer, Vol. 1. University of Michigan, Ann Arbor, MI.
|
| |
108
|
University of Michigan. 1966b. The "University of Michigan Assembly Program" ("UMAP"). In University of Michigan Executive System for the IBM 7090 Computer, Vol. 2. University of Michigan, Ann Arbor, MI.
|
| |
109
|
van Dyke, E. J. 1977. A dynamic incremental compiler for an interpretive language. Hewlett-Packard J. 28, 11 (July), 17--24.
|
| |
110
|
van Roy, P. 1994. The wonder years of sequential Prolog implementation. J. Logic Program. 19--20, 385--441.
|
 |
111
|
Philip Wickline , Peter Lee , Frank Pfenning, Run-time code generation and modal-ML, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.224-235, June 17-19, 1998, Montreal, Quebec, Canada
|
| |
112
|
|
| |
113
|
Byung-Sun Yang , Soo-Mook Moon , Seongbae Park , Junpyo Lee , SeungIl Lee , Jinpyo Park , Yoo C. Chung , Suhyun Kim , Kemal Ebcioglu , Erik Altman, LaTTe: A Java VM Just-in-Time Compiler with Fast and Efficient Register Allocation, Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques, p.128, October 12-16, 1999
|
| |
114
|
|
CITED BY 25
|
|
|
|
|
|
|
|
|
|
|
Karine Brifault , Henri-Pierre Charles, Efficient data driven run-time code generation, Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems, p.1-7, October 22-23, 2004, Houston, Texas
|
|
|
|
|
|
|
|
|
|
|
|
Dong-Heon Jung , Sung-Hwan Bae , Jaemok Lee , Soo-Mook Moon , JongKuk Park, Supporting precise garbage collection in Java Bytecode-to-C ahead-of-time compiler for embedded systems, Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems, October 22-25, 2006, Seoul, Korea
|
|
|
Dong-Heon Jung , Jong Kuk Park , Sung-Hwan Bae , Jaemok Lee , Soo-Mook Moon, Efficient exception handling in Java bytecode-to-c ahead-of-time compiler for smbedded systems, Proceedings of the 6th ACM & IEEE International conference on Embedded software, October 22-25, 2006, Seoul, Korea
|
|
|
Christopher Mueller , Andrew Lumsdaine, Runtime synthesis of high-performance code from scripting languages, Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
|
|
|
SungHyun Hong , Jin-Chul Kim , Jin Woo Shin , Soo-Mook Moon , Hyeong-Seok Oh , Jaemok Lee , Hyung-Kyu Choi, Java client ahead-of-time compiler for embedded systems, ACM SIGPLAN Notices, v.42 n.7, July 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dong-Heon Jung , JongKuk Park , Sung-Hwan Bae , Jaemok Lee , Soo-Mook Moon, Efficient exception handling in Java bytecode-to-C ahead-of-time compiler for embedded systems, Computer Languages, Systems and Structures, v.34 n.4, p.170-183, December, 2008
|
|
|
Byung-Sun Yang , Junpyo Lee , SeungIl Lee , Seongbae Park , Yoo C. Chung , Suhyun Kim , Kemal Ebcioglu , Erik Altman , Soo-Mook Moon, Efficient Register Mapping and Allocation in LaTTe, an Open-Source Java Just-in-Time Compiler, IEEE Transactions on Parallel and Distributed Systems, v.18 n.1, p.57-69, January 2007
|
|
|
|
|
|
|
|
|
Sunghyun Hong , Jin-Chul Kim , Soo-Mook Moon , Jin Woo Shin , Jaemok Lee , Hyeong-Seok Oh , Hyung-Kyu Choi, Client ahead-of-time compiler for embedded Java platforms, Software—Practice & Experience, v.39 n.3, p.259-278, March 2009
|
|