ACM Home Page
Please provide us with feedback. Feedback
A brief history of just-in-time
Full text PdfPdf (171 KB)
Source ACM Computing Surveys (CSUR) archive
Volume 35 ,  Issue 2  (June 2003) table of contents
Pages: 97 - 113  
Year of Publication: 2003
ISSN:0360-0300
Author
John Aycock  University of Calgary, Calgary, Canada
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 77,   Downloads (12 Months): 653,   Citation Count: 25
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/857076.857077
What is a DOI?

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
 
3
 
4
5
 
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
10
 
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
20
 
21
22
23
24
25
 
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
30
 
31
 
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
40
41
42
 
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
59
60
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
 
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
 
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
 
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
 
106
 
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
 
112
 
113
 
114

CITED BY  25