Skip to content
HN On Hacker News ↗

A brief history of just-in-time

▲ 72 points • 1 comments • by gjvc • 1w ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this entire text is human-written.

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 46 of 46
SEGMENTS · AI 0 of 46
WORD COUNT 1,192
PEAK AI % 0% · §32
Analyzed
Nov 1
backend: pangram/v3.3
Segments scanned
46 windows
avg 26 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,192 words · 46 segments analyzed

Human AI-generated
§1 Human · 0%

Author: John AycockAuthors Info & ClaimsPages 97 - 113Published: 01 June 2003 Publication HistoryAbstractSoftware 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[1]Abrams, P. S. 1970. An APL machine. Ph.D.

§2 Human · 0%

dissertation.

§3 Human · 0%

Stanford University, Stanford, CA. Also, Stanford Linear Accelerator Center (SLAC) Rep. 114.[2]Adl-Tabatabai, A.-R., Cierniak, M., Lueh, G.-Y., Parikh, V. M., and Stichnoth, J. M. 1998. Fast, effective code generation in a just-in-time Java compiler. In PLDI '98. 280--290.[3]Agesen, O. 1996. Concrete type inference: Delivering object-oriented applications. Ph.D.

§4 Human · 0%

dissertation.

§5 Human · 0%

Stanford University, Stanford, CA. Also Tech.

§6 Human · 0%

Rep.

§7 Human · 0%

SMLI TR-96-52, Sun Microsystems, Santa Clara, CA (Jan. 1996).[4]Agesen, O. 1997. Design and implementation of Pep, a Java just-in-time translator. Theor. Prac.

§8 Human · 0%

Obj.

§9 Human · 0%

Syst. 3, 2, 127--155.[5]Agesen, O. and Hölzle, U. 1995. Type feedback vs. concrete type inference: A comparison of optimization techniques for object-oriented languages. In Proceedings of OOPSLA '95. 91--107.[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.

§10 Human · 0%

Tech. Rep.

§11 Human · 0%

RC 21665, IBM Research Division, Yorktown Heights, NY.[7]Altman, E. R., Kaeli, D., and Sheffer, Y. 2000b. Welcome to the opportunities of binary translation. IEEE Comput. 33, 3 (March), 40--45.[8]Armstrong, J. 1997. The development of Erlang. In Proceedings of ICFP '97 (1997). 196--203.[9]Auslander, J., Philipose, M., Chambers, C., Eggers, S. J., and Bershad, B. N. 1996. Fast, effective dynamic compilation. In Proceedings of PLDI '96. 149--159.[10]Azevedo, A., Nicolau, A., and Hummel, J. 1999. Java annotation-aware just-in-time (AJIT) compilation system. In Proceedings of JAVA '99. 142--151.[11]Bala, V., Duesterwald, E., and Banerjia, S. 1999. Transparent dynamic optimization.

§12 Human · 0%

Tech. Rep.

§13 Human · 0%

HPL-1999-77, Hewlett-Packard, Polo Alto, CA.[12]Bartlett, J. 1992. Familiar Quotations (16th ed.).

§14 Human · 0%

J.

§15 Human · 0%

Kaplan, Ed. Little, Brown and Company, Boston, MA.[13]Bell, J. R. 1973. Threaded code.

§16 Human · 0%

Commun.

§17 Human · 0%

ACM 16, 6 (June), 370--372.[14]Bentley, J. 1988. Little languages. In More Programming Pearls. Addison-Wesley, Reading, MA, 83--100.[15]Bik, A.

§18 Human · 0%

J.

§19 Human · 0%

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]Burger, R. G. 1997. Efficient compilation and profile-driven dynamic recompilation in scheme. Ph.D. dissertation, Indiana University, Bloomington, IN.[19]Burke, M. G., Choi, J.-D., Fink, S., Grove, D., Hind, M., Sarkar, V., Serrano, M. J., Sreedhar, V. C., and Srinivasan, H. 1999. The Jalape no dynamic optimizing compiler for Java. In Proceedings of JAVA '99. 129--141.[20]Cardelli, L. 1984. Compiling a functional language. In 1984 Symposium on Lisp and Functional Programming. 208--217.[21]Chambers, C. 1992. The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages. Ph.D.

§20 Human · 0%

dissertation.

§21 Human · 0%

Stanford University, Stanford, CA.[22]Chambers, C. and Ungar, D. 1989. Customization: optimizing compiler technology for Self, a dynamically-typed object-oriented programming language. In Proceedings of PLDI '89. 146--160.[23]Chambers, C. and Ungar, D. 1990. Iterative type analysis and extended message splitting: Optimizing dynamically-typed object-oriented programs. In Proceedings of PLDI '90. 150--164.[24]Chambers, C. and Ungar, D. 1991. Making pure object-oriented languages practical. In Proceedings of OOPSLA '91. 1--15.[25]Chambers, C., Ungar, D., and Lee, E. 1989. An efficient implementation of Self, a dynamically-typed object-oriented programming language based on prototypes. In Proceedings of OOPSLA '89. 49--70.[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]Cierniak, M. and Li, W. 1997. Briki: an optimizing Java compiler. In Proceedings of IEEE COMPCON '97. 179--184.[28]Cmelik, B. and Keppel, D. 1994. Shade: A fast instruction-set simulator for execution profiling. In Proceedings of the 1994 Conference on Measurement and Modeling of Computer Systems. 128--137.[29]Consel, C., Hornof, L., Marlet, R., Muller, G., Thibault, S., Volanschi, E.-N., Lawall, J., and Noyé, J. 1998. Tempo: Specializing systems applications and beyond. ACM Comput. Surv. 30, 3 (Sept.), 5pp.[30]Consel, C. and Noël, F. 1996. A general approach for run-time specialization and its application to C. In Proceedings of POPL '96. 145--156.[31]Cramer, T., Friedman, R., Miller, T., Seberger, D., Wilson, R., and Wolczko, M. 1997. Compiling Java just in time. IEEE Micro 17, 3 (May/June), 36--43.[32]Dakin, R.

§22 Human · 0%

J.

§23 Human · 0%

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]Deutsch, L.

§24 Human · 0%

P.

§25 Human · 0%

and Schiffman, A. M. 1984. Efficient implementation of the Smalltalk-80 system. In Proceedings of POPL '84. 297--302.[36]Dieckmann, S. and Hölzle, U. 1997. The space overhead of customization.

§26 Human · 0%

Tech. Rep.

§27 Human · 0%

TRCS 97-21. University of California, Santa Barbara, Santa Barbara, CA.[37]Ebcioğlu, K. and Altman, E. R. 1996. DAISY: Dynamic compilation for 100% architectural compatibility.

§28 Human · 0%

Tech. Rep.

§29 Human · 0%

RC 20538. IBM Research Division, Yorktown Heights, NY.[38]Ebcioğlu, K. and Altman, E. R. 1997. Daisy: Dynamic compilation for 100% architectural compatibility. In Proceedings of ISCA '97. 26--37.[39]Engler, D. R. 1996. VCODE: a retargetable, extensible, very fast dynamic code generation system. In Proceedings of PLDI '96. 160--170.[40]Engler, D.

§30 Human · 0%

R.

§31 Human · 0%

and Hsieh, W. C. 2000. DERIVE: A tool that automatically reverse-engineers instruction encodings. In Proceedings of the ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization (Dynamo '00). 12--22.[41]Engler, D. R., Hsieh, W. C., and Kaashoek, M. F. 1996. C: A language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of POPL '96. 131--144.[42]Engler, D.

§32 Human · 0%

R.

§33 Human · 0%

and Proebsting, T. A. 1994. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of ASPLOS VI. 263--272.[43]Franz, M. 1994. Code-generation on-the-fly: A key to portable software. Ph.D.

§34 Human · 0%

dissertation.

§35 Human · 0%

ETH Zurich, Zurich, Switzerland.[44]Franz, M. and Kistler, T. 1997. Slim binaries.

§36 Human · 0%

Commun.

§37 Human · 0%

ACM 40, 12 (Dec.), 87--94.[45]Fraser, C.

§38 Human · 0%

W.

§39 Human · 0%

and Proebsting, T. A. 1999. Finite-state code generation. In Proceedings of PLDI '99. 270--280.[46]Gabriel, R.

§40 Human · 0%

P.

§41 Human · 0%

and Masinter, L. M. 1985. Performance and Evaluation of Lisp Systems. MIT Press, Cambridge, MA.[47]Geppert, L. and Perry, T. S. 2000. Transmeta's magic show. IEEE Spectr. 37, 5 (May), 26--33.[48]Goldberg, A. and Robson, D. 1985. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA.[49]Gorton, R. 2001. Private communication.[50]Gosling, J. 2001. Private communication.[51]Gschwind, M., Altman, E. R., Sathaye, S., Ledak, P., and Appenzeller, D. 2000. Dynamic and transparent binary translation. IEEE Comput. 33, 3, 54--59.[52]Hammond, J. 1977. BASIC---an evaluation of processing methods and a study of some programs. Softw.---Pract. Exp. 7, 697--711.[53]Hansen, G. J. 1974. Adaptive systems for the dynamic run-time optimization of programs. Ph.D.

§42 Human · 0%

dissertation.

§43 Human · 0%

Carnegie-Mellon University, Pittsburgh, PA.[54]Haygood, R. C. 1994. Native code compilation in SICStus Prolog. In Proceedings of the Eleventh International Conference on Logic Programming. 190--204.[55]Hennessy, J.

§44 Human · 0%

L.

§45 Human · 0%

and Patterson, D. A. 1996. Computer Architecture: A Quantitative Approach, 2nd ed. Morgan Kaufmann, San Francisco, CA.[56]Hölzle, U. 1994. Adaptive optimization for Self: Reconciling high performance with exploratory programming. Ph.D.

§46 Human · 0%

dissertation.