skip to main content
article

A brief history of just-in-time

Published:01 June 2003Publication History
Skip Abstract Section

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

  1. Abrams, P. S. 1970. An APL machine. Ph.D. dissertation. Stanford University, Stanford, CA. Also, Stanford Linear Accelerator Center (SLAC) Rep. 114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Agesen, O. 1996. Concrete type inference: Delivering object-oriented applications. Ph.D. dissertation. Stanford University, Stanford, CA. Also Tech. Rep. SMLI TR-96-52, Sun Microsystems, Santa Clara, CA (Jan. 1996). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Agesen, O. 1997. Design and implementation of Pep, a Java just-in-time translator. Theor. Prac. Obj. Syst. 3, 2, 127--155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  7. Altman, E. R., Kaeli, D., and Sheffer, Y. 2000b. Welcome to the opportunities of binary translation. IEEE Comput. 33, 3 (March), 40--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Armstrong, J. 1997. The development of Erlang. In Proceedings of ICFP '97 (1997). 196--203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Bala, V., Duesterwald, E., and Banerjia, S. 1999. Transparent dynamic optimization. Tech. Rep. HPL-1999-77, Hewlett-Packard, Polo Alto, CA.Google ScholarGoogle Scholar
  12. Bartlett, J. 1992. Familiar Quotations (16th ed.). J. Kaplan, Ed. Little, Brown and Company, Boston, MA.Google ScholarGoogle Scholar
  13. Bell, J. R. 1973. Threaded code. Commun. ACM 16, 6 (June), 370--372. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Bentley, J. 1988. Little languages. In More Programming Pearls. Addison-Wesley, Reading, MA, 83--100.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  16. Brown, P. J. 1976. Throw-away compiling. Softw.---Pract. Exp. 6, 423--434.Google ScholarGoogle Scholar
  17. Brown, P. J. 1990. Writing Interactive Compilers and Interpreters. Wiley, New York, NY.Google ScholarGoogle Scholar
  18. Burger, R. G. 1997. Efficient compilation and profile-driven dynamic recompilation in scheme. Ph.D. dissertation, Indiana University, Bloomington, IN. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Cardelli, L. 1984. Compiling a functional language. In 1984 Symposium on Lisp and Functional Programming. 208--217. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Chambers, C. 1992. The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages. Ph.D. dissertation. Stanford University, Stanford, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Chambers, C. and Ungar, D. 1991. Making pure object-oriented languages practical. In Proceedings of OOPSLA '91. 1--15. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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).Google ScholarGoogle Scholar
  27. Cierniak, M. and Li, W. 1997. Briki: an optimizing Java compiler. In Proceedings of IEEE COMPCON '97. 179--184. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Dakin, R. J. and Poole, P. C. 1973. A mixed code approach. The Comput. J. 16, 3, 219--222.Google ScholarGoogle ScholarCross RefCross Ref
  33. Dawson, J. L. 1973. Combining interpretive code with machine code. The Comput. J. 16, 3, 216--219.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  35. Deutsch, L. P. and Schiffman, A. M. 1984. Efficient implementation of the Smalltalk-80 system. In Proceedings of POPL '84. 297--302. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Dieckmann, S. and Hölzle, U. 1997. The space overhead of customization. Tech. Rep. TRCS 97-21. University of California, Santa Barbara, Santa Barbara, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  38. Ebcioğlu, K. and Altman, E. R. 1997. Daisy: Dynamic compilation for 100% architectural compatibility. In Proceedings of ISCA '97. 26--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Engler, D. R. 1996. VCODE: a retargetable, extensible, very fast dynamic code generation system. In Proceedings of PLDI '96. 160--170. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Engler, D. R. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Engler, D. R. and Proebsting, T. A. 1994. DCG: An efficient, retargetable dynamic code generation system. In Proceedings of ASPLOS VI. 263--272. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Franz, M. 1994. Code-generation on-the-fly: A key to portable software. Ph.D. dissertation. ETH Zurich, Zurich, Switzerland.Google ScholarGoogle Scholar
  44. Franz, M. and Kistler, T. 1997. Slim binaries. Commun. ACM 40, 12 (Dec.), 87--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Fraser, C. W. and Proebsting, T. A. 1999. Finite-state code generation. In Proceedings of PLDI '99. 270--280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Gabriel, R. P. and Masinter, L. M. 1985. Performance and Evaluation of Lisp Systems. MIT Press, Cambridge, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Geppert, L. and Perry, T. S. 2000. Transmeta's magic show. IEEE Spectr. 37, 5 (May), 26--33. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Goldberg, A. and Robson, D. 1985. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Gorton, R. 2001. Private communication.Google ScholarGoogle Scholar
  50. Gosling, J. 2001. Private communication.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Hammond, J. 1977. BASIC---an evaluation of processing methods and a study of some programs. Softw.---Pract. Exp. 7, 697--711.Google ScholarGoogle Scholar
  53. Hansen, G. J. 1974. Adaptive systems for the dynamic run-time optimization of programs. Ph.D. dissertation. Carnegie-Mellon University, Pittsburgh, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Haygood, R. C. 1994. Native code compilation in SICStus Prolog. In Proceedings of the Eleventh International Conference on Logic Programming. 190--204. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Hennessy, J. L. and Patterson, D. A. 1996. Computer Architecture: A Quantitative Approach, 2nd ed. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Hölzle, U. 1994. Adaptive optimization for Self: Reconciling high performance with exploratory programming. Ph.D. dissertation. Carnegie-Mellon University, Pittsburgh, PA.Google ScholarGoogle Scholar
  57. Hölzle, U. and Ungar, D. 1994a. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of PLDI '94. 326--336. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Hölzle, U. and Ungar, D. 1994b. A third-generation Self implementation: Reconciling responsiveness with performance. In Proceedings of OOPSLA '94. 229--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Ishizaki, K., Kawahito, M., Yasue, T., Takeuchi, M., Ogasawara, T., Suganuma, T., Onodera, T., Komatsu, H., and Nakatani, T. 1999. Design, implementation, and evaluation of optimizations in a just-in-time compiler. In Proceedings of JAVA '99. 119--128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Johansson, E., Pettersson, M., and Sagonas, K. 2000. A high performance Erlang system. In Proceedings of PPDP '00. 32--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Johnston, R. L. 1977. The dynamic incremental compiler of APL&backslash;3000. In APL '79 Conference Proceedings. Published in APL Quote Quad 9, 4 (June), Pt. 1, 82--87. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Jones, N. D., Gomard, C. K., and Sestoft, P. 1993. Partial Evaluation and Automatic Program Generation. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Keppel, D. 1991. A portable interface for on-the-fly instruction space modification. In Proceedings of ASPLOS IV. 86--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  65. Kistler, T. 1997. Dynamic runtime optimization. In Proceedings of the Joint Modular Languages Conference (JMLC '97). 53--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Kistler, T. 1999. Continuous program optimization. Ph.D. dissertation. University of California, Irvine, Irvine, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Kistler, T. 2001. Private communication.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  69. Klaiber, A. 2000. The technology behind Crusoe processors. Tech. Rep. (Jan.), Transmeta Corporation, Santa Clara, CA.Google ScholarGoogle Scholar
  70. Knuth, D. E. 1971. An empirical study of Fortran programs. Softw.---Pract. Exp. 1, 105--133.Google ScholarGoogle Scholar
  71. Krall, A. 1998. Efficient JavaVM just-in-time compilation. In Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques (PACT '98). 205--212. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  73. Lee, P. and Leone, M. 1996. Optimizing ML with run-time code generation. In Proceedings of PLDI '96. 137--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Lee, S., Yang, B.-S., Kim, S., Park, S., Moon, S.-M., Ebcioğlu, K., and Altman, E. 2000. Efficient Java exception handling in just-in-time compilation. In Proceedings of Java 2000. 1--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  77. Marlet, R., Consel, C., and Boinot, P. 1999. Efficient incremental run-time specialization for free. In PLDI '99. 281--292. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Mauriello, R. 2000. Private communication.Google ScholarGoogle Scholar
  79. May, C. 1987. Mimic: A fast System/370 simulator. In Proceedings of the SIGPLAN '87 Symposium on Interpreters and Interpretive Techniques (June). ACM Press, New York, NY, 1--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. McCarthy, J. 1960. Recursive functions of symbolic expressions and their computation by machine, part I. Commun. ACM 3, 4, 184--195. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. McCarthy, J. 1981. History of LISP. In History of Programming Languages, R. L. Wexelblat, Ed. Academic Press, New York, NY, 173--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Miller, T. C. 1977. Tentative compilation: A design for an APL compiler. In APL '79 Conference Proceedings. Volume 9 Published in APL Quote Quad 9, 4 (June), Pt. 1, 88--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Mitchell, J. G. 1970. The design and construction of flexible and efficient interactive programming systems. Ph.D. dissertation. Carnegie-Mellon University, Pittsburgh, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Mitchell, J. G. 2000. Private communication.Google ScholarGoogle Scholar
  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.)Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  87. Ng, T. S. and Cantoni, A. 1976. Run time interaction with FORTRAN using mixed code. The Comput. J. 19, 1, 91--92.Google ScholarGoogle ScholarCross RefCross Ref
  88. Pittman, T. 1987. Two-level hybrid interpreter/native code execution for combined space-time program efficiency. In Proceedings of the SIGPLAN Symposium on Interpreters and Interpretive Techniques. ACM Press, New York, NY, 150--152. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Piumarta, I. and Riccardi, F. 1998. Optimizing direct threaded code by selective inlining. In Proceedings of PLDI '98. 291--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Plezbert, M. P. and Cytron, R. K. 1997. Does "just in time" = "better late then never"? In Proceedings of POPL '97. 120--131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Poletto, M., Engler, D. R., and Kaashoek, M. F. 1997. tcc: A system for fast, flexible, and high-level dynamic code generation. In Proceedings of PLDI '97. 109--121. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. Ramsey, N. and Fernández, M. 1995. The New Jersey machine-code toolkit. In Proceedings of the 1995 USENIX Technical Conference. 289--302. Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Rau, B. R. 1978. Levels of representation of programs and the architecture of universal host machines. In Proceedings of the 11th Annual Microprogramming Workshop (MICRO-11). 67--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Rémy, D., Leroy, X., and Weis, P. 1999. Objective Caml---a general purpose high-level programming language. ERCIM News 36, 29--30.Google ScholarGoogle Scholar
  95. Rosenblum, M., Herrod, S. A., Witchel, E., and Gupta, A. 1995. Complete computer system simulation: The SimOS approach. IEEE Parall. Distrib. Tech. 3, 4 (Winter), 34--43. Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. Schroeder, S. C. and Vaughn, L. E. 1973. A high order language optimal execution processor: Fast Intent Recognition System (FIRST). In Proceedings of a Symposium on High-Level-Language Computer Architecture. Published in SIGPLAN 8, 11 (Nov.), 109--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. Sebesta, R. W. 1999. Concepts of Programming Languages (4th ed.). Addison-Wesley, Reading, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. Smith, R. B. and Ungar, D. 1995. Programming as an experience: The inspiration for Self. In Proceedings of ECOOP '95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. Sun Microsystems. 2001. The Java HotSpot virtual machine. White paper. Sun Microsystems, Santa Clara, CA.Google ScholarGoogle Scholar
  100. Thibault, S., Consel, C., Lawall, J. L., Marlet, R., and Muller, G. 2000. Static and dynamic program compilation by interpreter specialization. Higher-Order Symbol. Computat. 13, 161--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. Thompson, K. 1968. Regular expression search algorithm. Commun. ACM 11, 6 (June), 419--422. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. Transmeta Corporation. 2001. Code morphing software. Available online at http://www. transmeta.com/echnology/architecture/code_morphing.html. Transmeta Corporation, Santa Clara, CA.Google ScholarGoogle Scholar
  103. Tyma, P. 1998. Why are we using Java again? Commun. ACM 41, 6, 38--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Ung, D. and Cifuentes, C. 2000. Machine-adaptable dynamic binary translation. In Proceedings of Dynamo '00. 41--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. Ungar, D. and Smith, R. B. 1987. Self: The power of simplicity. In Proceedings of OOPSLA '87. 227--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Ungar, D., Smith, R. B., Chambers, C., and Hölzle, U. 1992. Object, message, and performance: How they coexist in Self. IEEE Comput. 25, 10 (Oct.), 53--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  109. van Dyke, E. J. 1977. A dynamic incremental compiler for an interpretive language. Hewlett-Packard J. 28, 11 (July), 17--24.Google ScholarGoogle Scholar
  110. van Roy, P. 1994. The wonder years of sequential Prolog implementation. J. Logic Program. 19--20, 385--441.Google ScholarGoogle Scholar
  111. Wickline, P., Lee, P., and Pfenning, F. 1998. Run-time code generation and Modal-ML. In Proceedings of PLDI '98. 224--235. Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. Wirth, N. and Gutknecht, J. 1989. The Oberon system. Softw.---Pract. Exp. 19, 9 (Sep.), 857--893. Google ScholarGoogle ScholarDigital LibraryDigital Library
  113. Yang, B.-S., Moon, S.-M., Park, S., Lee, J., Lee, S., Park, J., Chung, Y. C., Kim, S., Ebcioğlu, K., and Altman, E. 1999. LaTTe: A Java VM just-in-time compiler with fast and efficient register allocation. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. 128--138. IEEE Computer Society Press, Los Alamitos, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  114. Zheng, C. and Thompson, C. 2000. PA-RISC to IA-64: Transparent execution, no recompilation. IEEE Comput. 33, 3 (March), 47--52. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A brief history of just-in-time

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Computing Surveys
        ACM Computing Surveys  Volume 35, Issue 2
        June 2003
        125 pages
        ISSN:0360-0300
        EISSN:1557-7341
        DOI:10.1145/857076
        Issue’s Table of Contents

        Copyright © 2003 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 June 2003
        Published in csur Volume 35, Issue 2

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader