Ishizaki+00@proceedings{ISMM98,
  key =		 "ISMM",
  booktitle =	 {Proceedings of the First International Symposium on
                  Memory Management},
  title =	 {Proceedings of the First International Symposium on
                  Memory Management},
  editor =	 {Richard Jones},
  address =	 {Vancouver},
  series =	 SIGPLAN,
  volume =	 "34(3)",
  publisher =	 ACM,
  month =	 oct,
  year =	 1998,
  ISBN =	 {1-58113-114-3},
  note =	 {ISMM is the successor to the IWMM series of
                  workshops}
}

@INPROCEEDINGS{Chan:Dadoo:Santhanam:usenix:summer:1990,
  AUTHOR =	 {Paul Chan and Manoj Dadoo and Vatsa Santhanam},
  TITLE =	 {Evolution of the {U-code} Compiler Intermediate
                  Language at {Hewlett-Packard}},
  BOOKTITLE =	 {Proceedings of the 1990 Summer USENIX Conference},
  MONTH =	 {June},
  PAGES =	 {199--210},
  YEAR =	 1990
}

@INPROCEEDINGS{Taba+98,
  AUTHOR =	 {Ali-Reza Adl-Tabatabai and Michal Ciernak and
                  Guei-Yuan Lueh and Vishesh M. Parikh and James
                  M. Stichnoth},
  TITLE =	 {Fast, Effective Code Generation in a Just-In-Time
                  {Java} Compiler},
  BOOKTITLE =	 {Conference on Programming Language Design and
                  Implementation},
  ORGANIZATION = {ACM},
  SERIES =	 {SIGPLAN},
  VOLUME =	 {33(5)},
  PAGES =	 {280--290},
  ADDRESS =	 {Montreal},
  YEAR =	 1998
}

@INPROCEEDINGS{Bacon+98,
  AUTHOR =	 {David F. Bacon and Ravi Konuru and Chet Mruthy and
                  Mauricio Serrano},
  TITLE =	 {Thin Locks: Featherweight Synchronization for {Java}},
  BOOKTITLE =	 {Conference on Programming Language Design and
                  Implementation},
  ORGANIZATION = {ACM},
  SERIES =	 {SIGPLAN},
  VOLUME =	 {33(5)},
  PAGES =	 {258--268},
  ADDRESS =	 {Montreal},
  YEAR =	 1998
}

@INPROCEEDINGS{Cameron+92,
  AUTHOR =	 {Don Cameron and Paul Faust and Dmitry Lenkov and
                  Michey Mehta},
  TITLE =	 {A Portable Implementation of {C++} Exception
                  Handling},
  BOOKTITLE =	 {C++ Technical Conference},
  ORGANIZATION = {USENIX},
  PAGES =	 {225--243},
  MONTH =	 {August},
  YEAR =	 1992
}

@ARTICLE{Chase94,
  AUTHOR =	 {David Chase},
  TITLE =	 {Implementation of Exception Handling},
  JOURNAL =	 {Journal of C Language Translation},
  VOLUME =	 5,
  NUMBER =	 4,
  PAGES =	 {??--??},
  MONTH =	 {June},
  YEAR =	 1994
}

@INPROCEEDINGS{Giering+94,
  AUTHOR =	 {E. W. Giering and Frank Mueller and T. P. Baker},
  TITLE =	 {Features of the {Gnu} {Ada} Runtime Library},
  BOOKTITLE =	 {TRI-Ada '94},
  ORGANIZATION = {ACM},
  PAGES =	 {93--103},
  YEAR =	 1994
}

@INPROCEEDINGS{Gunter+95,
  AUTHOR =	 {Carl A. Gunter and Didier Remy and Jon G. Riecke},
  TITLE =	 {A Generalization of Exceptions and Control in
                  {ML}-like languages},
  BOOKTITLE =	 {Seventh International Conference on Functional
                  Programming Languages and Computer Architecture},
  ORGANIZATION = {ACM},
  PAGES =	 {12--23},
  YEAR =	 1995
}

@ARTICLE{KoenigStroustrup90,
  AUTHOR =	 {Andrew Koenig and Bjarne Stroustrup},
  TITLE =	 {Exception Handling for {C++}},
  JOURNAL =	 {Journal of Object Oriented Programming},
  VOLUME =	 3,
  NUMBER =	 2,
  PAGES =	 {16--33},
  MONTH =	 {July/August},
  YEAR =	 1990
}

@BOOK{dragon86,
  AUTHOR =    {Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman},
  TITLE =     {Compilers: Principles, Techniques, and Tools},
  PUBLISHER = {Addison-Wesley},
  YEAR =      1986
}


@BOOK{appel98,
  AUTHOR =    {Appel, A.W.},
  TITLE =     {Modern Compiler Implementation in Java},
  PUBLISHER = {Cambridge University Press},
  YEAR =      1998
}


@BOOK{Stallings95,
  AUTHOR =	 {William Stallings},
  TITLE =	 {Operating Systems},
  PUBLISHER =	 {Prentice Hall},
  YEAR =	 1995
}

@INPROCEEDINGS{Bershad+92,
  AUTHOR =	 {Brian N. Bershad and David D. Redell and John
                  R. Ellis},
  TITLE =	 {Fast mutual exclusion for uniprocessors},
  BOOKTITLE =	 {Annual Symposium on Architectural Support for
                  Programming Languages and Operating Systems},
  ORGANIZATION = {ACM},
  PAGES =	 {223--233},
  MONTH =	 {October},
  YEAR =	 1992
}

@INPROCEEDINGS{Mueller93,
  AUTHOR =	 {Frank Mueller},
  TITLE =	 {A Library Implementation of {POSIX} Threads under
                  {UNIX}},
  BOOKTITLE =	 {Winter USENIX},
  PAGES =	 {29--41},
  ADDRESS =	 {San Diego},
  MONTH =	 {January},
  YEAR =	 1993
}

@TECHREPORT{Keppel93,
  AUTHOR =	 {David Keppel},
  TITLE =	 {Tools and Techniques for Building Fast Portable
                  Threads Packages},
  NUMBER =	 {UWCSE 93-05-06},
  INSTITUTION =	 {University of Washington},
  YEAR =	 1993
}

@MISC{BissAWT97,
  AUTHOR =	 {Peter Mehlitz},
  TITLE =	 {Biss {AWT}},
  HOWPUBLISHED = {{\tt http://www.biss-net.com/biss-awt.html}},
  YEAR =	 1997
}

@MISC{Jigsaw97,
  KEY =		 {Jigsaw97},
  TITLE =	 {Jigsaw},
  HOWPUBLISHED = {{\tt http://www.w3.org/Jigsaw/}},
  YEAR =	 1997
}

@MISC{PosixThreads96,
  KEY =		 {POSIX},
  TITLE =	 {Standard for Threads Interface to {POSIX}},
  HOWPUBLISHED = {IEEE, P1003.1c},
  YEAR =	 1996
}

@MISC{SunThreads97,
  KEY =		 {JavaThreads},
  TITLE =	 {Java Threads Whitepaper},
  HOWPUBLISHED = {{\tt http://java.sun.com/}},
  INSTITUTION =	 {SUN},
  YEAR =	 1997
}

@INPROCEEDINGS{AltmanEbcioglu97,
  AUTHOR =	 {Erik Altman and Kemal Ebcio\u{g}lu},
  TITLE =	 {{DAISY}: Dynamic Compilation for 100\% Architectural
                  Compatibility},
  BOOKTITLE =	 {ISCA'97 - The 24th Annual International Symposium on
                  Computer Architecture},
  ORGANIZATION = {ACM, IEEE},
  YEAR =	 1997
}

@BOOK{javaref96,
  AUTHOR =	 {Ken Arnold and James Gosling},
  TITLE =	 {The {Java} Programming Language},
  PUBLISHER =	 {Addison-Wesley},
  YEAR =	 1996
}

@INPROCEEDINGS{bacon&sweeny96-,
  author =	 {David F. Bacon and Peter F. Sweeney},
  title =	 {Fast Static Analysis of {C++} Virtual Function
                  Calls},
  booktitle =	 {Conference on Object-Oriented Programming Systems,
                  Languages \& Applications (OOPSLA'96)},
  ORGANIZATION = {ACM},
  pages =	 {324--341},
  year =	 1996
}

@ARTICLE{picoJava97,
  AUTHOR =	 {J. Michael O'Connor and Marc Tremblay},
  TITLE =	 {{picoJava-I}: The {Java} Virtual Machine in
                  Hardware},
  JOURNAL =	 {IEEE Micro},
  VOLUME =	 17,
  NUMBER =	 2,
  PAGES =	 {45--53},
  MONTH =	 {April},
  YEAR =	 1997
}

@ARTICLE{SunJIT97,
  AUTHOR =	 {Timothy Cramer and Richard Friedman and Terrence
                  Miller and David Seberger and Robert Wilson and
                  Mario Wolczko},
  TITLE =	 {Compiling {Java} Just in Time},
  JOURNAL =	 {IEEE Micro},
  VOLUME =	 17,
  NUMBER =	 3,
  PAGES =	 {36--43},
  MONTH =	 {June},
  YEAR =	 1997
}

@ARTICLE{ssa91,
  AUTHOR =	 {Ron Cytron and Jeanne Ferrante and Barry K. Rosen
                  and Mark N. Wegman and F. Kenneth Zadeck},
  TITLE =	 {Efficiently computing Static Single Assignment Form
                  and the Control Flow Graph},
  JOURNAL =	 {ACM Transactions on Programming Languages and
                  Systems},
  VOLUME =	 13,
  NUMBER =	 4,
  PAGES =	 {451--490},
  MONTH =	 {October},
  YEAR =	 1991
}

@INPROCEEDINGS{diwan+96-,
  AUTHOR =	 {Amer Diwan and J. Eliot B. Moss and Kathryn
                  S. McKinley},
  TITLE =	 {Simple and Effective Analysis of Statically-Typed
                  Object-Oriented Programs},
  BOOKTITLE =	 {Conference on Object-Oriented Programming Systems,
                  Languages \& Applications (OOPSLA '96)},
  ORGANIZATION = {ACM},
  PAGES =	 {292--305},
  YEAR =	 1996
}

@INPROCEEDINGS{EbciogluAltman97,
  AUTHOR =	 {Kemal Ebcio\u{g}lu and Erik Altman and Erdem
                  Hokenek},
  TITLE =	 {A {Java} {ILP} Machine based on fast Dynamic
                  Compilation},
  BOOKTITLE =	 {MASCOTS'97 - International Workshop on Security and
                  Efficiency Aspects of {Java}},
  YEAR =	 1997
}

@INPROCEEDINGS{Ertl92-,
  AUTHOR =	 {M. Anton Ertl},
  TITLE =	 {A New Approach to {Forth} native Code Generation},
  BOOKTITLE =	 {EuroForth '92},
  ADDRESS =	 {Southampton},
  YEAR =	 1992
}

@PHDTHESIS{Ertl96phd,
  AUTHOR =	 {M. Anton Ertl},
  TITLE =	 {Implementation of Stack-Based Languages on Register
                  Machines},
  SCHOOL =	 {Technische Universit\"at Wien},
  MONTH =	 {April},
  YEAR =	 1996
}

@INPROCEEDINGS{ErtlMaierhofer95,
  AUTHOR =	 {M. Anton Ertl and Martin Maierhofer},
  TITLE =	 {Translating {Forth} to native {C}},
  BOOKTITLE =	 {EuroForth '95},
  ADDRES =	 {Dagstuhl},
  YEAR =	 1995
}

@INPROCEEDINGS{Ertl&Pirker97,
  AUTHOR =	 {M. Anton Ertl and Christian Pirker},
  TITLE =	 {The Structure of a {Forth} Native Code Compiler},
  BOOKTITLE =	 {EuroForth '97 Conference Proceedings},
  ADDRES =	 {Oxford},
  PAGES =	 {107--116},
  YEAR =	 1997
}

}
@PHDTHESIS{Franz94,
  AUTHOR =	 {Michael Franz},
  TITLE =	 {Code Generation On the Fly: A Key for Portable
                  Software},
  SCHOOL =	 {ETH Z\"urich},
  YEAR =	 1994
}

@BOOK{smalltalk80,
  AUTHOR =	 {Adele Goldberg and David Robson},
  TITLE =	 {SMALLTALK-80, The Language and its Implementation},
  PUBLISHER =	 {Addison-Wesley},
  YEAR =	 1983
}

@INPROCEEDINGS{Gough97,
  AUTHOR =	 {K. John Gough},
  TITLE =	 {Multi-language, Multi-target Compiler Development:
                  Evolution of the {Gardens Point} Compiler Project},
  BOOKTITLE =	 {JMLC'97 --Joint Modular Languages Conference},
  EDITOR =	 {Hanspeter M\"ossenb\"ock},
  PUBLISHER =	 {LNCS 1204},
  ADDRESS =	 {Linz},
  YEAR =	 1997
}

@MASTERSTHESIS{Grafl97,
  AUTHOR =	 {Reinhard Grafl},
  TITLE =	 {{CACAO}: {Ein 64Bit JavaVM Just-in-Time Compiler}},
  SCHOOL =	 {Technische Universit\"at Wien},
  MONTH =	 {January},
  YEAR =	 1997
}

@BOOK{hennessy&patterson90,
  AUTHOR =	 {John L. Hennessy and David A. Patterson},
  TITLE =	 {Computer Architecture. A Quantitative Approach},
  PUBLISHER =	 {Morgan Kaufman Publishers},
  YEAR =	 1990
}

@ARTICLE{Hsieh+97,
  AUTHOR =	 {Cheng-Hsueh A. Hsieh and Maria T. Conte and Teresa
                  L. Johnson and John C. Gyllenhaal and {Wen-mei}
                  W. Hwu},
  TITLE =	 {Optimizing NET Compilers for Improved {Java}
                  Performance},
  JOURNAL =	 {IEEE Computer},
  VOLUME =	 30,
  NUMBER =	 6,
  PAGES =	 {67--75},
  MONTH =	 {June},
  YEAR =	 1997
}

@INPROCEEDINGS{HsiehHwu97,
  AUTHOR =	 {Cheng-Hsueh A. Hsieh and John C. Gyllenhaal and
                  {Wen-mei} W. Hwu},
  TITLE =	 {Java Bytecode to Native Code Translation: The
                  {Caffeine} Prototype and Preliminary Results},
  BOOKTITLE =	 {29th Annual IEEE/ACM International Symposium on
                  Microarchitecture (MICRO'29)},
  ADDRES =	 {Paris},
  YEAR =	 1996
}

@ARTICLE{Holmer96,
  AUTHOR =	 {Bruce K. Holmer and Barton Sano and Michael Carlton
                  and Peter van Roy and Alvin M. Despain},
  TITLE =	 {Design and Analysis of Hardware for High-Performance
                  {Prolog}},
  JOURNAL =	 {Journal of Logic Programming},
  PUBLISHER =	 {Elsevier},
  VOLUME =	 {29(1-3)},
  PAGES =	 {107--139},
  YEAR =	 1996
}

@BOOK{garbagebook,
  AUTHOR =	 {Richard Jones and Rafael Lins},
  TITLE =	 {Garbage Collection},
  PUBLISHER =	 {John Wiley \& Sons},
  YEAR =	 1996
}

@INPROCEEDINGS{Kistler97,
  AUTHOR =	 {Thomas Kistler},
  TITLE =	 {Dynamic Runtime Optimization},
  BOOKTITLE =	 {JMLC'97 - Joint Modular Languages Conference},
  EDITOR =	 {Hanspeter M\"ossenb\"ock},
  PUBLISHER =	 {LNCS 1204},
  ADDRESS =	 {Linz},
  YEAR =	 1997
}

@INPROCEEDINGS{KrBe95a,
  AUTHOR =	 {Andreas Krall and Thomas Berger},
  TITLE =	 {Incremental Global Compilation of {Prolog} with the
                  {Vienna Abstract Machine}},
  BOOKTITLE =	 {Twelfth International Conference on Logic
                  Programming},
  EDITOR =	 {Leon Sterling},
  PUBLISHER =	 {MIT Press},
  PAGES =	 {333--347},
  ADDRESS =	 {Tokyo},
  YEAR =	 1995
}

@INPROCEEDINGS{KrGr97a,
  AUTHOR =	 {Andreas Krall and Reinhard Grafl},
  TITLE =	 {{CACAO} -- A 64 bit {JavaVM} Just-in-Time Compiler},
  BOOKTITLE =	 {Workshop on Java for Science and Engineering
                  Computation},
  EDITOR =	 {Geoffry C. Fox and Wei Li},
  ORGANIZATION = {ACM},
  MONTH =	 {June},
  PAGES =	 {},
  ADDRESS =	 {Las Vegas},
  YEAR =	 1997
}

@ARTICLE{KrGr97b,
  AUTHOR =	 {Andreas Krall and Reinhard Grafl},
  TITLE =	 {{CACAO} -- A 64 bit {JavaVM} Just-in-Time Compiler},
  JOURNAL =	 {Concurrency: Practice and Experience},
  PUBLISHER =	 {John Wiley \& Sons},
  VOLUME =	 {9},
  NUMBER =	 {11},
  PAGES =	 {1017--1030},
  YEAR =	 1997
}

@INPROCEEDINGS{KrErGsch98,
  AUTHOR =	 {Andreas Krall and Anton Ertl and Michael Gschwind},
  TITLE =	 {{JavaVM} Implementations: Compilers versus Hardware},
  BOOKTITLE =	 {Australian Computer Architecture Conference
                  ({ACAC'98})},
  EDITOR =	 {John Morris},
  VOLUME =	 {20(4)},
  SERIES =	 {Australian Computer Science Communications},
  PUBLISHER =	 {Springer},
  PAGES =	 {101--110},
  ADDRESS =	 {Perth},
  YEAR =	 1998
}

@INPROCEEDINGS{KrPr98a,
  AUTHOR =	 {Andreas Krall and Mark Probst},
  TITLE =	 {Monitors and Exceptions: How to implement {Java}
                  efficiently},
  BOOKTITLE =	 {ACM 1998 Workshop on Java for High-Performance
                  Computing},
  EDITOR =	 {Siamak Hassanzadeh and Klaus Schauser},
  ORGANIZATION = {ACM},
  MONTH =	 {March},
  PAGES =	 {15--24},
  ADDRESS =	 {Palo Alto},
  YEAR =	 1998
}

@ARTICLE{KrPr98b,
  AUTHOR =	 {Andreas Krall and Mark Probst},
  TITLE =	 {Monitors and Exceptions: How to implement {Java}
                  efficiently},
  JOURNAL =	 {Concurrency: Practice and Experience},
  PUBLISHER =	 {John Wiley \& Sons},
  VOLUME =	 {10},
  NUMBER =	 {11--13},
  PAGES =	 {837--850},
  YEAR =	 1998
}

@INPROCEEDINGS{Kr98b,
  AUTHOR =	 {Andreas Krall},
  TITLE =	 {Efficient {JavaVM} Just-in-Time Compilation},
  BOOKTITLE =	 {International Conference on Parallel Architectures
                  and Compilation Techniques},
  EDITOR =	 {Jean-Luc Gaudiot},
  ORGANIZATION = {IFIP,ACM,IEEE},
  PUBLISHER =	 {North-Holland},
  PAGES =	 {205--212},
  ADDRESS =	 {Paris},
  MONTH =	 {October},
  YEAR =	 1998
}

@INPROCEEDINGS{GrErKr01b,
	AUTHOR      = {David Gregg and M.~Anton Ertl and Andreas Krall},
	TITLE       = {Implementing an Efficient {Java} Interpreter},
	BOOKTITLE   = {HPCN'01, Java in High Performance Computing},
	EDITOR      = {Vladimir Getov and George K. Thiruvathukal},
	SERIES      = {LNCS 2110},
	PUBLISHER   = {Springer},
	PAGES       = {613--620},
	ADDRESS     = {Amsterdam},
	MONTH       = {June},
	YEAR        = 2001}

@BOOK{javavm96,
  AUTHOR =	 {Tim Lindholm and Frank Yellin},
  TITLE =	 {The {Java} Virtual Machine Specification},
  PUBLISHER =	 {Addison-Wesley},
  YEAR =	 1996
}

@INPROCEEDINGS{Muller+97,
  AUTHOR =	 {Gilles Muller and Barbara Moura and Fabrice Bellard
                  and Charles Consel},
  TITLE =	 {Harrisa: a Flexible and Efficient {Java} Environment
                  Mixing Bytecode and Compiled Code},
  BOOKTITLE =	 {COOTS'97 - third Conference on Object-Oriented
                  Technologies and Systems},
  YEAR =	 1997
}

@PHDTHESIS{Lilith?,
  AUTHOR =	 {Richard Stanley Ohran},
  TITLE =	 {Lilith: a workstation computer for Modula-2},
  SCHOOL =	 {ETH Z\"urich},
  YEAR =	 1984
}

@INPROCEEDINGS{PaJoSm97,
  AUTHOR =	 {Subbaro Palacharia and Norman P. Jouppi and
                  J.E. Smith},
  TITLE =	 {Complexity-Effective Superscalar Processors},
  BOOKTITLE =	 {ISCA'97 - The 24th Annual International Symposium on
                  Computer Architecture},
  ORGANIZATION = {ACM, IEEE},
  YEAR =	 1997
}

@BOOK{Pcode82,
  AUTHOR =	 {Steven Pemberton and Martin C. Daniels},
  TITLE =	 {Pascal Implementation, The P4 Compiler},
  PUBLISHER =	 {Ellis Horwood},
  YEAR =	 1982
}

@BOOK{AlphaRef95,
  AUTHOR =	 {R.L. Sites, R.T. Witek},
  TITLE =	 {Alpha AXP Architecture Reference Manual},
  PUBLISHER =	 {Digital Press},
  YEAR =	 1995
}

@INPROCEEDINGS{UNCOL61,
  AUTHOR =	 {T. B. Steel},
  TITLE =	 {A first version of {UNCOL}},
  BOOKTITLE =	 {Proceedings of the Western Joint IRE-AIEE-ACM
                  Computer Conference},
  YEAR =	 1961,
  PAGES =	 {371 -- 377}
}

@ARTICLE{AmsterdamKit83,
  AUTHOR =	 {Andrew S. Tanenbaum and Hans van {Sta\-ve\-ren} and
                  E. G. Keizer and Johan W. Stevenson},
  TITLE =	 {A Practical Tool Kit for making Portable Compilers},
  JOURNAL =	 {Communications of the ACM},
  VOLUME =	 16,
  NUMBER =	 9,
  PAGES =	 {654--660},
  MONTH =	 {September},
  YEAR =	 1983
}

@ARTICLE{AmsterdamKit89,
  AUTHOR =	 "A. S. Tanenbaum and M. F. Kaashoek and
                  K. G. Langendoen and C. J. H. Jacobs",
  TITLE =	 "The design of very fast portable compilers",
  JOURNAL =	 "ACM SIG{\-}PLAN Notices",
  VOLUME =	 24,
  NUMBER =	 11,
  PAGES =	 "125--131",
  MONTH =	 nov,
  YEAR =	 1989
}

@INPROCEEDINGS{Self,
  AUTHOR =	 {David Ungar and Randall B. Smith},
  TITLE =	 {{SELF}: The Power of Simplicity},
  BOOKTITLE =	 {OOPSLA '87 Proceedings},
  YEAR =	 {1987},
  PAGES =	 {227--242}
}

@INPROCEEDINGS{VitekHorspool96,
  AUTHOR =	 {Jan Vitek and R. Nigel Horspool},
  TITLE =	 {Compact Dispatch Tables for Dynamically Typed Object
                  Oriented Languages},
  BOOKTITLE =	 {6th International Conference CC '96},
  YEAR =	 1996,
  PAGES =	 {307--325}
}

@INPROCEEDINGS{KrViHo97,
	AUTHOR      = {Andreas Krall and Jan Vitek and Nigel Horspool},
	TITLE       = {Near Optimal Hierarchical Encoding of Types},
	BOOKTITLE   = {11th European Conference on Object Oriented Programming ({ECOOP'97})},
	EDITOR      = {Mehmet Aksit and Satoshi Matsuoka},
	SERIES      = {LNCS 1241},
	PUBLISHER   = {Springer},
	PAGES       = {128--145},
	ADDRESS     = {Finland},
	YEAR        = 1997}

@INPROCEEDINGS{ViHoKr97,
  AUTHOR =	 {Jan Vitek and Nigel Horspool and Andreas Krall},
  TITLE =	 {Efficient Type Inclusion Tests},
  BOOKTITLE =	 {Conference on Object Oriented Programming Systems,
                  Languages \& Applications ({OOPSLA '97})},
  EDITOR =	 {Toby Bloom},
  ORGANIZATION = {ACM},
  MONTH =	 {October},
  PAGES =	 {142--157},
  ADDRESS =	 {Atlanta},
  YEAR =	 1997
}

@INPROCEEDINGS{GehmRandScal00,
  AUTHOR =	 {Sanjay Gehmawat and Keith H. Randall and Daniel
                  J. Scales},
  TITLE =	 {Field Analysis: Getting Useful and Low-cost
                  Interprocedural Information},
  BOOKTITLE =	 {Conference on Programming Language Design and
                  Implementation},
  ORGANIZATION = {ACM},
  SERIES =	 {SIGPLAN},
  VOLUME =	 {35(5)},
  PAGES =	 {334--344},
  ADDRESS =	 {Vancouver},
  YEAR =	 2000
}

@INPROCEEDINGS{BodikGuptaSarkar00,
  AUTHOR =	 {Rastislav Bodik and Rajiv Gupta and Vivek Sarkar},
  TITLE =	 {{ABCD}: Eliminating Array Bound Checks on Demand},
  BOOKTITLE =	 {Conference on Programming Language Design and
                  Implementation},
  ORGANIZATION = {ACM},
  SERIES =	 {SIGPLAN},
  VOLUME =	 {35(5)},
  PAGES =	 {321--333},
  ADDRESS =	 {Vancouver},
  YEAR =	 2000
}

@INPROCEEDINGS{Ruf00,
  AUTHOR =	 {Erik Ruf},
  TITLE =	 {Effective Synchronization Removal for {Java}},
  BOOKTITLE =	 {Conference on Programming Language Design and
                  Implementation},
  ORGANIZATION = {ACM},
  SERIES =	 {SIGPLAN},
  VOLUME =	 {35(5)},
  PAGES =	 {208--218},
  ADDRESS =	 {Vancouver},
  YEAR =	 2000
}

@ARTICLE{Marmot00,
  AUTHOR =	 "Robert Fitzgerald and Todd B. Knoblock and Erik Ruf and
                  Bjarne Steensgaard and David Tarditi",
  TITLE =	 "Marmot: an optimizing compiler for {Java}",
  JOURNAL =	 "Software -- Practice and Experience",
  VOLUME =	 30,
  NUMBER =	 3,
  PAGES =	 "199--232",
  MONTH =	 nov,
  YEAR =	 2000
}

@Misc{Wilkinson:97,
  OPTkey =	 {},
  author =	 {Tim Wilkinson},
  title =	 {{KAFFE}: A free virtual machine to run {Java} code},
  howpublished = {{\tt http://www.kaffe.org}},
  year =	 {1997},
  OPTmonth =	 {},
  OPTnote =	 {},
  OPTannote =	 {}
}

@TechReport{Proebsting+97,
  author =	 {Todd A. Proebsting and Gregg Townsend and Patrick
                  Bridges and John H. Hartman and Tim Newsham and
                  Scott A. Watterson},
  title =	 {Toba: {Java} for Applications},
  institution =	 {University of Arizona},
  year =	 {1997},
  OPTkey =	 {},
  OPTtype =	 {},
  OPTnumber =	 {},
  address =	 {Tucson, AZ},
  OPTmonth =	 {},
  OPTnote =	 {},
  OPTannote =	 {}
}

@BOOK{GCBook96,
  AUTHOR =	 {Richard Jones and Rafael Lins},
  TITLE =	 {Garbage Collection},
  PUBLISHER =	 {John Wiley},
  YEAR =	 1996
}

@INCOLLECTION{garbagesurvey,
  AUTHOR =	 {Paul R. Wilson},
  TITLE =	 {Uniprocessor Garbage Collection Techniques},
  BOOKTITLE =	 {ACM Computing Surveys},
  PUBLISHER =	 {ACM},
  PAGES =	 {to apear},
  YEAR =	 {1994}
}

@INPROCEEDINGS{Age+98,
  AUTHOR =	 {Ole Agesen and David Detlefs and J. Eliot B. Moss},
  TITLE =	 {Garbage Collection and Local Variable Type-Precision
                  and Liveness in {Java} Virtual Machines},
  BOOKTITLE =	 {Conference on Programming Language Design and
                  Implementation},
  ORGANIZATION = {ACM},
  SERIES =	 {SIGPLAN},
  VOLUME =	 {33(6)},
  PAGES =	 {269--279},
  ADDRESS =	 {Montreal},
  YEAR =	 1998
}

@INPROCEEDINGS{Johnstone98,
  AUTHOR =	 {Mark S. Johnstone and Paul R. Wilson},
  TITLE =	 {The Memory Fragmentation Problem: Solved?},
  BOOKTITLE =	 {1998 International Symposium on Memory Management},
  ORGANIZATION = {ACM},
  PAGES =	 {},
  ADDRESS =	 {Vancouver},
  YEAR =	 1998
}

@INPROCEEDINGS{Hicks+98,
  AUTHOR =	 {Michael Hicks and Luke Hornof and Jonathan T. Moore
                  and Scott Nettles},
  TITLE =	 {A Study of Large Object Spaces},
  BOOKTITLE =	 {1998 International Symposium on Memory Management},
  ORGANIZATION = {ACM},
  PAGES =	 {138--145},
  ADDRESS =	 {Vancouver},
  YEAR =	 1998
}

@INPROCEEDINGS{Colnet+98,
  AUTHOR =	 {Dominique Colnet and Philippe Coucaud and Olivier
                  Zendra},
  TITLE =	 {Compiler Support to Customize the Mark and Sweep
                  Algorithm},
  BOOKTITLE =	 {1998 International Symposium on Memory Management},
  ORGANIZATION = {ACM},
  PAGES =	 {154--165},
  ADDRESS =	 {Vancouver},
  YEAR =	 1998
}

@ARTICLE{Boehm88,
  AUTHOR =	 {Hans-Juergen Boehm and Mark Weiser},
  TITLE =	 {Garbage Collection in an Uncooperative Environment},
  JOURNAL =	 {Software Practice and Experience},
  PUBLISHER =	 {John Wiley \& Sons},
  VOLUME =	 {18},
  NUMBER =	 {9},
  PAGES =	 {807--820},
  YEAR =	 1988
}

@InProceedings{HudsonMoss:1992,
  author =	 {Richard L. Hudson and J. Eliot B. Moss},
  title =	 {Incremental Collection of Mature Objects},
  booktitle =	 {Proceedings of the International Workshop on Memory
                  Management},
  pages =	 {388--403},
  month =	 {September},
  year =	 {1992}
}

@TECHREPORT{Petit-Bianco99,
  AUTHOR =	 {Alexandre Petit-Bianco99},
  TITLE =	 {No Silver Bullet - Garbage Collection for {Java} in
                  Embedded Systems},
  NUMBER =	 {http://sourceware.cygnus.com/java/},
  INSTITUTION =	 {Cygnus Solutions},
  MONTH =	 {August},
  YEAR =	 1998
}

@TECHREPORT{Ritzau99,
  AUTHOR =	 {Alexandre Petit-Bianco99},
  TITLE =	 {No Silver Bullet - Garbage Collection for {Java} in
                  Embedded Systems},
  NUMBER =	 {thesis proposal, http://www.ida.liu.se/~tobri/},
  INSTITUTION =	 {Link\"oping University},
  MONTH =	 {August},
  YEAR =	 1998
}

@inproceedings{lim98,
  author =	 {Tian F. Lim and Przemyslaw Pardyak and Brian
                  N. Bershad},
  title =	 {A Memory-Efficient Real-Time Non-Copying Garbage
                  Collector},
  pages =	 {118--129},
  crossref =	 {ISMM98},
  URL =		 "http://www.cs.washington.edu/homes/tian/ISMM98/",
  abstract =	 {Garbage collectors used in operating systems such as
                  SPIN and embedded systems such as Java and Inferno
                  must operate with limited resources and minimize
                  their impact on application
                  performance. Consequently, they must maintain short
                  real-time pauses, low overhead, and a small memory
                  footprint. Most garbage collectors are not adequate
                  because they are either not real-time or they
                  require larger heaps because they trade space for
                  time. For example, Treadmill uses segregated free
                  lists to allocate and reclaim memory in constant
                  time but at the cost of under-utilizing memory. We
                  have implemented a new version of the Treadmill
                  collector and used it in the SPIN extensible
                  operating system kernel. We chose Treadmill for its
                  excellent real-time latencies and low overhead. We
                  improve its poor memory utilization by using real-
                  time page-level management techniques that reduce
                  the fragmentation caused by segregated free
                  lists. We use page-wise collection to locate pages
                  of free memory, which are dynamically reassigned
                  between free lists as needed. We use virtual memory
                  to dynamically remap free pages into continuous
                  ranges. Our experiments demonstrate that we have
                  substantially improved memory utilization without
                  compromising latency or overhead, and that the new
                  collector performs very well for SPIN's workloads.}
}

@Article{IBM:Moreira:2000,
  author = 	 {J. E. Moreira and S. P. Midkoff and M. Gupta and P. V. Artigas and M. Snir and R. D. Lawrence},
  title = 	 {Java programming for high-performance numerical computing},
  journal = 	 {IBM Systems Journal},
  year = 	 {2000},
  OPTkey = 	 {},
  volume = 	 {39},
  number = 	 {1},
  pages = 	 {21--56},
  OPTmonth = 	 {},
  OPTnote = 	 {},
  OPTannote = 	 {}
}

@Article{IBM:Suganuma:2000,
  author = 	 {T. Suganuma and T. Ogasawara and M. TaT. Yasuekeuchi and and M. Kawahito and K. Ishizaki and H. Komatsuatani},
  title = 	 {Overview of the {IBM} {Java} Just-in-Time Compiler},
  journal = 	 {IBM Systems Journal},
  year = 	 {2000},
  OPTkey = 	 {},
  volume = 	 {39},
  number = 	 {1},
  pages = 	 {175--193},
  OPTmonth = 	 {},
  OPTnote = 	 {},
  OPTannote = 	 {}
}

@TechReport{Compaq:Scales:2000,
  author = 	 {Daniel J. Scales and Keith H. Randall and Sanjay Ghemawat and Jeff Dean},
  title = 	 {The {Swift} Compiler: Design and Implementation},
  institution =  {Compaq Western Research Laboratory},
  year = 	 {2000},
  OPTkey = 	 {},
  OPTtype = 	 {},
  number = 	 {2000/2},
  OPTaddress = 	 {},
  month = 	 {April},
  OPTnote = 	 {},
  OPTannote = 	 {}
}

@Manual{NaturalBridge,
  title = 	 {{BulletTrainTM} optimizing compiler and runtime for {JVM} bytecode},
  OPTkey = 	 {},
  OPTauthor = 	 {},
  organization = {NaturalBridge},
  OPTaddress = 	 {},
  OPTedition = 	 {},
  OPTmonth = 	 {},
  OPTyear = 	 {},
  note = 	 {{\tt http://www.naturalbridge.com}},
  OPTannote = 	 {}
}


@Manual{TowerJ,
  title = 	 {{TowerJ 3.0: A New Generation Native Java Compiler And Runtime Environment}},
  OPTkey = 	 {},
  OPTauthor = 	 {},
  organization = {Tower Technologies},
  OPTaddress = 	 {},
  OPTedition = 	 {},
  OPTmonth = 	 {},
  OPTyear = 	 {},
  note = 	 {{\tt http://www.towerj.com}},
  OPTannote = 	 {}
}

@InProceedings{SGI:Smith:2000,
  author = 	 {Todd Smith and Suresh Srinivas and Philipp Tomsich and Jinpyo Park},
  title = 	 {Practical Experiences with {Java} Compilation},
  booktitle = 	 {Proceedings of the Intl. Conf. on High-Performance Computing},
  OPTcrossref =  {},
  OPTkey = 	 {},
  OPTpages = 	 {},
  year = 	 {2000},
  OPTeditor = 	 {},
  volume = 	 {1970},
  OPTnumber = 	 {},
  series = 	 {Lecture Notes in Computer Science},
  OPTaddress = 	 {},
  month = 	 {December},
  OPTorganization = {},
  publisher =    {Springer},
  OPTnote = 	 {},
  OPTannote = 	 {}
}

@INPROCEEDINGS{DetlefsAgesen,
  AUTHOR =	 "David Detlefs and Ole Agesen",
  TITLE =	 "{The Case for Multiple Compilers}",
  BOOKTITLE =	 "Proc. OOPSLA 1999 VM Workshop on Simplicity,
                  Performance and Portability in Virtual Machine
                  Design",
  YEAR =	 1997,
}

@InProceedings{Krall_Tomsich_1999a,
  author =       {Andreas Krall and Philipp Tomsich},
  title =        {Garbage Collection for Large Memory {Java} Applications},
  booktitle =    {Proceedings of the 7th European Conference on High-Performance Computing and Networking (HPCN Europe'99)},
  pages =        {895--907},
  year =         {1999},
  OPTeditor =    {},
  volume =       {1593},
  series =       {Lecture Notes in Computer Science},
  month =        {Apr},
  publisher =    {Springer Verlag},
}

@INPROCEEDINGS{Sable00,
  AUTHOR =	 {Patrice Pominville and Feng Quian and Raja Vallee-Rai
              and Laurie Hendren and Clark Verbrugge},
  TITLE =	 {A Framework for Optimizing {Java} Using Attrributes},
  BOOKTITLE =	 {CASCON},
  ORGANIZATION = {IBM},
  ADDRESS =	 {Mississauga},
  YEAR =	 2000
}

@InProceedings{Hoelzle+91,
  author =       "Urs H{\"o}lzle and Craig Chambers and David Ungar",
  title =        "Optimizing Dynamically-Typed Object-Oriented
                 Programming Languages with Polymorphic Inline Caches",
  pages =        "21--38",
  booktitle =    "Proceedings of the European Conference on Object-Oriented
                 Programming (ECOOP'91)",
  volume =       {512},
  series =       {Lecture Notes in Computer Science},
  month =        jul,
  publisher =    "Springer Verlag",
  address =      "Geneva",
  year =         "1991",
  annote =       "Abstract: Polymorphic inline caches (PICs) provide a new way to reduce the
                 overhead of polymorphic message sends by extending inline caches to include more
                 than one cached lookup result per call site. For a set of typical object-oriented
                 SELF programs, PICs achieve a median speedup of 11%. 
                 As an important side effect, PICs collect type information by recording all of the
                 receiver types actually used at a given call site. The compiler can exploit this
                 type information to generate better code when recompiling a method. An
                 experimental version of such a system achieves a median speedup of 27% for our set
                 of SELF programs, reducing the number of non-inlined message sends by a factor of
                 two. 
                 Implementations of dynamically-typed object-oriented languages have been limited
                 by the paucity of type information available to the compiler. The abundance of the
                 type information provided by PICs suggests a new compilation approach for these
                 languages, adaptive compilation. Such compilers may succeed in generating very
                 efficient code for the time-critical parts of a program without incurring
                 distracting compilation pauses."

}

@InProceedings{HoelzleUngar94,
  author =       "Urs H{\"o}lzle and David Ungar",
  title =        "Optimizing Dynamically-Dispatched Calls with Run-Time
                 Type Feedback",
  pages =        "326--336",
  ISBN =         "0-89791-662-X",
  booktitle =    "Proceedings of the Conference on Programming Language
                 Design and Implementation (PLDI'94)",
  month =        jun,
  publisher =    "ACM Press",
  address =      "New York, NY, USA",
  year =         "1994",
}

@InProceedings{DriesenHoelzle96,
  author =       "Karel Driesen and Urs H{\"o}lzle",
  title =        "The Direct Cost of Virtual Function Calls in {C++}",
  booktitle =    "Conference on Object-Oriented Programming Systems,
                 Languages \& Applications ({OOPSLA} '96)",
  year =         "1996",
  pages =        "306--323",
  annote =       "Studies the cost of virtual function calls on modern
                 processors, taking into account the effects of
                 out-of-order execution and caches. On their baseline
                 architecture, the standard implementation of virtual
                 function calls take 1\%--10\% of the instructions and
                 2\%--29\% of the cycles. The thunk implementation is
                 slightly faster, for most benchmarks, and much faster
                 for a few. The relative cost of virtual function calls
                 will increase slightly in the future. The influences of
                 architectural variations like branch misprediction
                 penalties, branch prediction accuracy, issue widths,
                 and load latency. The cost per dispatch is 2--5 cycles
                 for most benchmarks (10 cycles for one benchmark) on
                 their baseline architecture (4-wide processor, 2 cycle
                 load latency, 4 cycle branch latency).",
}

@InProceedings{Oxhoj+92,
  author =       "Nicholas Oxh{\o}j and Jens Palsberg and Michael~I.
                 Schwartzbach",
  editor =       "O. Lehrmann~Madsen",
  title =        "{Making Type Inference Practical}",
  booktitle =    "Proceedings of the \mbox{ECOOP}~'92 European
                 Conference on Object-oriented Programming",
  series =       "LNCS 615",
  pages =        "329--349",
  publisher =    "Springer-Verlag",
  address =      "Utrecht, The Netherlands",
  month =        jul,
  year =         "1992",
}

@Article{IC::Palsberg1995,
  refkey =       "C1680; PN2520",
  title =        "Efficient Inference of Object Types",
  author =       "Jens Palsberg",
  pages =        "198--209",
  journal =      "Information and Computation",
  month =        dec,
  year =         "1995",
  volume =       "123",
  number =       "2",
  abstract =     "Abadi and Cardelli have recently investigated a
                 calculus of objects (Abadi and Cardelli, 1994). The
                 calculus supports a key feature of object-oriented
                 languages: an object can be emulated by another object
                 that has more refined methods. Abadi and Cardelli
                 presented four first-order type systems for the
                 calculus. The simplest one is based on finite types and
                 no subtyping, and the most powerful one has both
                 recursive types and subtyping. Open until now is the
                 question of type inference, and in the presence of
                 subtyping ``the absence of minimum typings poses
                 practical problems for type inference'' (Abadi and
                 Cardelli, 1994). \par In this paper we give an $O(n^3)$
                 algorithm for each of the four type inference problems
                 and we prove that all the problems are P-complete. We
                 also indicate how to modify the algorithms to handle
                 functions and records.",
 }

@InProceedings{TipPalsberg00,
  author =       "Frank Tip and Jens Palsberg",
  title =        "Scalable propagation-based call graph construction
                 algorithms.",
  pages =        "281--293",
  booktitle =    "Proceedings of the Conference on Object-Oriented
                 Programming, Systems, Languages and Application
                 ({OOPSLA}-00)",
  month =        oct,
  series =       "ACM Sigplan Notices",
  volume =       "35(10)",
  publisher =    "ACM Press",
  address =      "N. Y.",
  year =         "2000",
}


@InProceedings{Dean+95,
  author =       "Jeffrey Dean and David Grove and Craig Chambers",
  title =        "Optimization of Object-Oriented Programs Using Static
                 Class Hierarchy Analysis",
  booktitle =    "Proceedings of the 9th European Conference on Object-Oriented
                 Programming (ECOOP'95)",
  volume =       {952},
  series =       {Lecture Notes in Computer Science},
  publisher =    "Springer Verlag",
  pages =        "77--101",
  year =         "1995",
}

@InProceedings{BaconSweeney96,
  author =       "David F. Bacon and Peter F. Sweeney",
  title =        "Fast Static Analysis of {C}++ Virtual Function Calls",
  booktitle =    "Conference on Object-Oriented Programming Systems,
                 Languages \& Applications ({OOPSLA} '96)",
  year =         "1996",
  pages =        "324--341",
  publisher =    "ACM Press",
  annote =       "An empirical study of the effectiveness of
                 \emph{unique name} analysis, \emph{class hierarchy
                 analysis} and \emph{rapid type analysis}. Rapid type
                 analysis is an analysis that takes into account which
                 classes are actually instantiated. It is very fast and
                 detects a a significant percentage of monomorphic calls
                 for some benchmarks (up to 100\%).",
}

@phdthesis{Bacon97,
  author =       "David Francis Bacon",
  title =        "Fast and Effective Optimization of Statically Typed
                 Object-Oriented Languages",
  school =       "University of California, Berkeley",
  year =         "1997",
  abstract =     "In this dissertation, we show how a relatively simple
                 and extremely fast interprocedural optimization
                 algorithm can be used to optimize many of the expensive
                 features of statically typed, object-oriented languages
                 -- in particular, C++ and Java. We present a new
                 optimization algorithm, Rapid Type Analysis, and show
                 that it is fast both in theory and in practice, and
                 significantly out-performs other {"}fast{"} algorithms
                 for virtual function call resolution. We present
                 optimization algorithms for the resolution of virtual
                 function calls, conversion of virtual inheritance to
                 direct inheritance, elimination of dynamic casts and
                 dynamic type checks, and removal of object
                 synchronization. These algorithms are all presented
                 within a common framework that allows them to be driven
                 by the information collected by Rapid Type Analysis, or
                 by some other type analysis algorithm. Collectively,
                 the optimizations in this dissertation free the
                 programmer from having to sacrifice modularity and
                 extensibility for performance. Instead, the programmer
                 can freely make use of the most powerful features of
                 object-oriented programming, since the optimizer will
                 remove unnecessary extensibility from the program.",
}

@Article{Shivers88,
  author =       "Olin Shivers",
  title =        "Control-Flow Analysis in {Scheme}",
  pages =        "164--174",
  journal =      "ACM SIGPLAN Notices",
  year =         "1988",
  month =        jul,
  volume =       "23",
  number =       "7",
  note =         "Proceedings of the ACM SIGPLAN 1988 Conference on
                 Programming Language Design and Implementation.",
}


@PhdThesis{Shivers91,
  author =       "Olin Shivers",
  title =        "Control-Flow Analysis of Higher-Order Languages",
  school =       "Carnegie-Mellon University",
  year =         "1991",
  month =        may,
}


@InProceedings{Grove+97,
  author =       "David Grove and Greg DeFouw and
                 Jeffrey Dean and Craig Chambers",
  title =        "Call Graph Construction in Object-Oriented Languages",
  pages =        "108--124",
  booktitle =    "Proceedings of the {ACM} {SIGPLAN} Conference on
                 Object-Oriented Programming Systems, Languages and
                 Applications ({OOPSLA}-97)",
  month =        oct,
  series =       "ACM SIGPLAN Notices",
  volume =       "32, 10",
  publisher =    "ACM Press",
  address =      "New York",
  year =         "1997",
}

@InProceedings{DeFouw:1998:FIC,
  author =       "Greg DeFouw and David Grove and Craig Chambers",
  title =        "Fast interprocedural class analysis",
  editor =       "ACM",
  booktitle =    "Conference record of {POPL} '98: the 25th {ACM}
                 {SIGPLAN-SIGACT} Symposium on Principles of Programming
                 Languages: papers presented at the Symposium, San
                 Diego, California, 19--21 January 1998",
  publisher =    "ACM Press",
  address =      "New York",
  year =         "1998",
  pages =        "222--236",
  year =         "1998",
  url =          "http://www.acm.org:80/pubs/citations/proceedings/plan/268946/p222-defouw/",
}

@Article{Collin:1997:TIL,
  author =       "S. Collin and D. Colnet and O. Zendra",
  title =        "Type Inference for Late Binding: The {SmallEiffel}
                 Compiler",
  journal =      "Lecture Notes in Computer Science",
  volume =       "1204",
  pages =        "67--??",
  year =         "1997",
  coden =        "LNCSD9",
  ISSN =         "0302-9743",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  acknowledgement = ack-nhfb,
}


@InProceedings{Zendra+97,
  author =       "Olivier Zendra and Dominique Colnet and Suzanne
                 Collin",
  title =        "Efficient Dynamic Dispatch without Virtual Function
                 Tables: The Small {Eiffel} Compiler",
  pages =        "125--141",
  ISSN =         "0362-1340",
  booktitle =    "Proceedings of the {ACM} {SIGPLAN} Conference on
                 Object-Oriented Programming Systems, Languages and
                 Applications ({OOPSLA}-97)",
  month =        oct # "~5--9",
  series =       "ACM SIGPLAN Notices",
  volume =       "32, 10",
  publisher =    "ACM Press",
  address =      "New York",
  year =         "1997",
}

@InProceedings{Sundaresan+00,
  author =       "Vijay Sundaresan and Laurie J. Hendren and Chrislain
                 Razafimahefa and Raja Vall{\'e}e-Rai and Patrick Lam
                 and Etienne Gagnon and Charles Godin",
  title =        "Practical virtual method call resolution for Java.",
  pages =        "264--280",
  booktitle =    "Proceedings of the Conference on Object-Oriented
                 Programming, Systems, Languages and Application
                 ({OOPSLA}-00)",
  month =        oct # "~15--19",
  series =       "ACM Sigplan Notices",
  volume =       "35.10",
  publisher =    "ACM Press",
  address =      "N. Y.",
  year =         "2000",
}

@InProceedings{Myers95,
  author =       "Andrew C. Myers",
  title =        "Bidirectional Object Layout for Separate Compilation",
  booktitle =    "{OOPSLA}~'95 Conference Proceedings: Object-Oriented
                 Programming Systems, Languages, and Applications",
  year =         "1995",
  publisher =    "ACM Press",
  pages =        "124--139",
  url =          "http://www.acm.org/pubs/articles/proceedings/oops/217838/p124-myers/p124-myers.pdf",
}

@InProceedings{Stroustrup89,
  author =       "Bjarne Stroustrup",
  title =        "Multiple Inheritance for {C++}",
  editor =       "{USENIX} Association",
  booktitle =    "Computing Systems, Fall, 1989.",
  publisher =    "USENIX Association",
  address =      "Berkeley, CA, USA",
  month =        "Fall",
  year =         "1989",
  volume =       "2(4)",
  pages =        "367--395",
}

@InProceedings{Rose88,
  author =       "John R. Rose",
  title =        "Fast Dispatch Mechanisms for Stock Hardware",
  editor =       "Norman Meyrowitz",
  booktitle =    "{OOPSLA}'88: Object-Oriented Programming Systems,
                 Languages and Applications: Conference Proceedings",
  year =         "1988",
  pages =        "27--35",
}

@TechReport{Liskov+95,
  author =       "Barbara Liskov and Dorothy Curtis and Mark Day and
                 Sanjay Ghemawat and Robert Gruber and Paul Johnson and
                 Andrew C. Myers",
  title =        "Theta Reference Manual",
  institution =  "Massachusetts Institute of Technology, Laboratory for
                 Computer Science",
  month =        feb,
  year =         "1995",
  number =       "Programming Methodology Group Memo 88",
  url =          "http://clef.lcs.mit.edu/Thor-papers.html",
}


@InProceedings{Ishizaki+00,
  author =       "Kazuaki Ishizaki and Motohiro Kawahito and Toshiaki
                 Yasue and Hideaki Komatsu and Toshio Nakatani",
  title =        "A study of devirtualization techniques for a {JavaTM}
                 Just-In-Time compiler.",
  pages =        "294--310",
  booktitle =    "Proceedings of the Conference on Object-Oriented
                 Programming, Systems, Languages and Application
                 ({OOPSLA}-00)",
  month =        oct # "~15--19",
  series =       "ACM Sigplan Notices",
  volume =       "35.10",
  publisher =    "ACM Press",
  address =      "N. Y.",
  year =         "2000",
}


@INPROCEEDINGS{Alpern+01,
	AUTHOR      = {Bowen Alpern and Anthony Cocchi and David Grove and Derek Lieber},
	TITLE       = {Efficient Dispatch of {Java} Interface Methods},
	BOOKTITLE   = {HPCN'01, Java in High Performance Computing},
	EDITOR      = {Vladimir Getov and George K. Thiruvathukal},
	SERIES      = {LNCS 2110},
	PUBLISHER   = {Springer},
	PAGES       = {621--628},
	ADDRESS     = {Amsterdam},
	MONTH       = {June},
	YEAR        = 2001
}


@BOOK{AbramskyHankin87,
   AUTHOR =    {Samson Abramsky and Chris Hankin},
   TITLE =     {Abstract Interpretation of Declarative Languages},
   PUBLISHER = {Ellis Horwood},
   YEAR =      1987
}

@INPROCEEDINGS{Blanchet99,
   AUTHOR =    {Bruno Blanchet},
   TITLE =     {Escape Analysis for Object Oriented Languages:
                Application to Java},
   BOOKTITLE = {Proceedings of OOPSLA'99},
   ORGANIZATION = {ACM},
   ADDRESS =   {Denver},
   PAGES =     {20--34},
   MONTH =     {November},
   YEAR =      1999
}

@INPROCEEDINGS{Choi99,
   AUTHOR =    {J.-G. Choi and M. Gupta and M. Serrano and
                V.C. Sreedhar and S. Midkiff},
   TITLE =     {Escape Analysis for Java},
   BOOKTITLE = {Proceedings of OOPSLA'99},
   ORGANIZATION = {ACM},
   ADDRESS =   {Denver},
   PAGES =     {1-19},
   MONTH =     {November},
   YEAR =      1999
}

@ARTICLE{AitKaci89,
   AUTHOR =    {H. A\"{i}t-Kaci and R. Boyer and P. Lincoln and R.
Nasr},
   TITLE =     {Efficient implementation of lattice operations},
   JOURNAL =   {Transactions on Programming Languages and Systems},
   ORGANIZATION = {ACM},
   VOLUME =    11,
   NUMBER =    1,
   PAGES =     {115-146},
   MONTH =     {November},
   YEAR =      1989
}

@INPROCEEDINGS{Caseau93,
   AUTHOR =    {Yves Caseau},
   TITLE =     {Efficient handling of multiple inheritance hierarchies},
   BOOKTITLE = {Proceedings of OOPSLA'93},
   ORGANIZATION = {ACM},
   SERIES =	 {SIGPLAN},
   VOLUME =	 {28(10)},
   PAGES =	 {271--287},
   YEAR =         1993
}


@ARTICLE{Cohen91,
   AUTHOR =    {N.J. Cohen},
   TITLE = {Type-extension type tests can be performed in constant time},
   JOURNAL =   {Transactions on Programming Languages and Systems},
   ORGANIZATION = {ACM},
   VOLUME =    13,
   NUMBER =    4,
   PAGES =     {626--629},
   MONTH =     {April},
   YEAR =      1991
}


@ARTICLE{Dencker84,
   AUTHOR =   {P. Dencker and K. D\"{u}rre and J. Heuft},
   TITLE =     {Optimization of Parser Tables for Portable Compilers},
   JOURNAL =   {Transactions on Programming Languages and Systems},
   ORGANIZATION = {ACM},
   VOLUME =    6,
   NUMBER =    4,
   PAGES =     {546--572},
   MONTH =     {April},
   YEAR =      1984
}


@ARTICLE{KraViHo97,
   AUTHOR =    {A. Krall and J. Vitek and R.N. Horspool},
   TITLE =     {Near optimal hierarchical encoding of types},
   BOOKTITLE = {European Conference on Object-Oriented Programming
                ({ECOOP'97})},
   PAGES =     {128-145},
   PUBLISHER = {LNCS 1241},
   ADDRESS =   {Jyv\"{a}skyl\"{a}},
   YEAR =      1997
}


@ARTICLE{VitekHorspool94,
   AUTHOR =    {J. Vitek and R.N. Horspool},
   TITLE =     {Taming Message Passing: Efficient Method Look-Up for
                Dynamically Typed Languages},
   BOOKTITLE = {European Conference on Object-Oriented Programming
               ({ECOOP'94})},
   PAGES =     {432--449},
   PUBLISHER = {LNCS 821},
   ADDRESS =   {Bologna},
   YEAR =      1994
}

@InProceedings{Agesen95,
  title =        "The {Cartesian} Product Algorithm: Simple and Precise
                 Type Inference of Parametric Polymorphism",
  author =       "Ole Agesen",
  pages =        "2--26",
  editor =       "Walter G. Olthoff",
  booktitle =    "{ECOOP}'95---Object-Oriented Programming, 9th European
                 Conference",
  address =      "{\AA}arhus, Denmark",
  month =        "7--11~" # aug,
  year =         "1995",
  series =       "Lecture Notes in Computer Science",
  volume =       "952",
  publisher =    "Springer",
}

@InProceedings{Jalapeno99,
  author =       "Bowen Alpern and Dick Attanasio and Anthony Cocchi and
                 Derek Lieber and Stephen Smith and Ton Ngo and John J.
                 Barton",
  title =        "Implementing Jalapeno in Java",
  pages =        "314--324",
  editor =       "Loren Meissner",
  booktitle =    "Proceeings of the 1999 {ACM} {SIGPLAN} Conference on
                 Object-Oriented Programming, Systems, Languages {\&}
                 Applications ({OOPSLA}`99)",
  month =        nov # "~1--5",
  series =       "ACM Sigplan Notices",
  volume =       "34.10",
  publisher =    "ACM Press",
  address =      "N. Y.",
  year =         "1999",
}


@Article{Jalapeno00,
  author =       "B. Alpern and C. R. Attanasio and J. J. Barton and M.
                 G. Burke and P. Cheng and J.-D. Choi and A. Cocchi and
                 S. J. Fink and D. Grove and M. Hind and S. F. Hummel
                 and D. Lieber and V. Litvinov and M. F. Mergen and T.
                 Ngo and J. R. Russell and V. Sarkar and M. J. Serrano
                 and J. C. Shepherd and S. E. Smith and V. C. Sreedhar
                 and H. Srinivasan and J. Whaley",
  title =        "The {Jalape{\~n}o} virtual machine",
  journal =      "IBM Systems Journal",
  volume =       "39",
  number =       "1",
  pages =        "211--238",
  month =        "????",
  year =         "2000",
  coden =        "IBMSA7",
  ISSN =         "0018-8670",
  bibdate =      "Mon Apr 24 15:43:02 MDT 2000",
  url =          "http://www.almaden.ibm.com/journal/sj/391/alpern.html",
  acknowledgement = ack-nhfb,
  keywords =     "Java",
}

@InProceedings{HotSpot01,
  author =       "Michael Paleczny and Chnstopher Vick and Cliff Click",
  title =        "The {Java} {HotSpot} Server Compiler",
  pages =        "1--12",
  booktitle =    "Proceedings of the {$Java{\^{TM}}$} Virtual Machine
                 Research and Technology Symposium ({JVM}-01)",
  month =        apr # " ~23--24",
  publisher =    "USENIX Association",
  address =      "Berkley, USA",
  year =         "2001",
}

@BOOK{javavm99,
  AUTHOR =	 {Tim Lindholm and Frank Yellin},
  TITLE =	 {The {Java} Virtual Machine Specification, Second Edition},
  PUBLISHER =	 {Addison-Wesley},
  YEAR =	 1999
}

@inproceedings{Coglio02,
  author = "A. Coglio",
  title = "Simple Verification Technique for Complex Java Bytecode Subroutines",
  booktitle = "Proc. 4th ECOOP Workshop on Formal Techniques for Javalike
    Programs",
  year = "2002",
  url = "citeseer.nj.nec.com/coglio02simple.html" 
}

@inproceedings{Coglio01,
  author = "A. Coglio",
  title = "Improving the official specification of Java bytecode verification",
  booktitle = "Proc. 3rd ECOOP Workshop on Formal Techniques for Java Programs",
  month =jun,
  year = "2001",
  url = "citeseer.nj.nec.com/coglio01improving.html"
}

@INPROCEEDINGS{OgKoNa02,
  AUTHOR =    {Takeshi Ogasawara and Hideaki Komatsu and Toshio Nakatani},
  TITLE =     {{Optimizing Precision Overhead for x86 Processors}},
  BOOKTITLE = {2nd Java Virtual Machine Research and Technology Symposium (JVM '02)},
  PAGES =     {41--50},
  VOLUME =    {August 1--2},
  YEAR =      2003
}

@misc{AMD,
  KEY =          {AMD},
  TITLE =	 {{Advanced Micro Devices}},
  HOWPUBLISHED = {\texttt{http://www.amd.com/}},
  YEAR =         2004
}

@misc{AMD64,
  KEY =          {AMD64},
  TITLE =	 {{AMD64}},
  HOWPUBLISHED = {\texttt{http://www.amd64.org/}},
  YEAR =         2004
}

@unpublished{AMD64ABI,
  KEY =          {AMD64ABI},
  AUTHOR =       {Jan Hubicka and Andreas Jaeger and Mark Mitchell},
  TITLE =	 {{System V Application Binary Interface, AMD64 Architecture Processor Supplement}},
  NOTE =         {\texttt{http://www.amd64.org/}},
  MONTH =        {July},
  YEAR =         2004
}

@misc{Blackdown,
  KEY =          {Blackdown},
  TITLE =	 {Blackdown.org},
  HOWPUBLISHED = {\texttt{http://www.blackdown.org/}},
  YEAR =         2003
}

@misc{GCJ,
  KEY =          {GCJ},
  TITLE =	 {The {GNU} Compiler for the {J}ava Programming Language},
  HOWPUBLISHED = {\texttt{http://gcc.gnu.org/java/}},
  YEAR =         2004
}

@misc{Sun,
  KEY =          {SUN},
  TITLE =	 {Sun {M}icrosystems},
  HOWPUBLISHED = {\texttt{http://www.sun.com/}},
  YEAR =         2004
}

@misc{SunJVM,
  KEY =          {SunJVM},
  TITLE =	 {Sun {M}icrosystems {J}ava {V}irtual {M}achine},
  HOWPUBLISHED = {\texttt{http://java.sun.com/j2se/}},
  YEAR =         2004
}

@misc{IBMJVM,
  KEY =          {IBMJVM},
  TITLE =	 {{IBM} {J}ava {V}irtual {M}achine},
  HOWPUBLISHED = {\texttt{http://www-106.ibm.com/developerworks/java/jdk/}},
  YEAR =         2004
}

@misc{SUSE,
  KEY =          {SUSE},
  TITLE =	 {{SUSE} {L}inux},
  HOWPUBLISHED = {\texttt{http://www.suse.com/}},
  YEAR =         2004
}

@manual{IA32vol1,
  TITLE =        {IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture},
  ORGANIZATION = {Intel Cooperation},
  ADDRESS =      {P.O. Box 7641 Mt. Prospect IL 60056-7641},
  NOTE =         {{Order Number: 245470-009}},
  YEAR =         2002
}

@manual{IA32opt,
  TITLE =        {IA-32 Intel Architecture Optimization Reference Manual},
  ORGANIZATION = {Intel Cooperation},
  ADDRESS =      {\texttt{http://developer.intel.com}},
  NOTE =         {{Order Number: 248966-009}},
  YEAR =         2003
}

@manual{AMDopt,
  TITLE =        {AMD Athlon Processor x86 Code Optimization Guide},
  ORGANIZATION = {Advanced Micro Devices, Inc.},
  NOTE =         {{Publication No. 22007}},
  MONTH =        {February},
  YEAR =         2002
}

@MISC{KJC,
  KEY =          {KJC},
  TITLE =	 {{KJC} {K}opi {J}ava {C}ompiler},
  HOWPUBLISHED = {\texttt{http://www.dms.at/kopi/}},
  YEAR =         2004
}

@MASTERSTHESIS{Lackner2001,
  AUTHOR =	 {Martin Lackner},
  TITLE =	 {Extending {J}ava},
  SCHOOL =	 {Technische Universit\"at Wien},
  MONTH =	 {May},
  YEAR =	 2001
}

@InProceedings{1998:iccl:jensen,
  author =       "T. Jensen and D. Le M{\'e}tayer and T. Thorn",
  title =        "Security and Dynamic Class Loading in {J}ava: {A}
                 Formalisation",
  booktitle =    "Proceedings of the 1998 International Conference on
                 Computer Languages",
  publisher =    "IEEE Computer Society Press",
  year =         "1998",
  ISBN =         "0-780-35005-7, 0-8186-8454-2, 0-8186-8456-9",
  pages =        "4--15",
}

@Misc{oai:CiteSeerPSU:523425,
  title =        "Dynamic Class Loading in the Java",
  author =       "Gilad Bracha and Sheng Liang",
  year =         "1999",
  month =        sep # "~26",
  annote =       "The Pennsylvania State University CiteSeer Archives",
  language =     "en",
  oai =          "oai:CiteSeerPSU:523425",
  rights =       "unrestricted",
  subject =      "Gilad Bracha,Sheng Liang Dynamic Class Loading in the
                 Java",
  URL =          "http://citeseer.ist.psu.edu/523425.html;
                 http://www.cs.utah.edu/~gary/classloaders.ps",
}

@Article{Norton:2000:DCL,
  author =       "James Norton",
  title =        "Dynamic Class Loading in {C++}",
  journal =      "Linux Journal",
  volume =       "73",
  pages =        "??--??",
  month =        may,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583",
  bibdate =      "Thu Sep 21 07:44:12 MDT 2000",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue73/3687.html",
  acknowledgement = ack-nhfb,
}

@InProceedings{alpe02,
  title =        "Experiences Porting the {J}ikes {RVM} to
                 {L}inux/{IA}32",
  author =       "Bowen Alpern and Maria Butrico and Anthony Cocchi and
                 Julian Dolby and Stephen Fink and David Grove and Ngo
                 Ngo",
  booktitle =    "Usenix Java Virtual Machine Research and Technology
                 Symposium ({JVM} '02)",
  address =      "San Francisco, CA",
  month =        aug,
  year =         "2002",
  URL =          "http://www.research.ibm.com/people/d/dgrove/papers/jvm02.pdf"
}

@Article{Alpern:2000:JAV,
  author =       "B. Alpern and C. R. Attanasio and J. J. Barton and Burke
                 Burke and P. Cheng and J.-D. Choi and A. Cocchi and
                 S. J. Fink and D. Grove and M. Hind and S. F. Hummel
                 and D. Lieber and V. Litvinov and M. F. Mergen and Ngo
                 Ngo and J. R. Russell and V. Sarkar and M. J. Serrano
                 and J. C. Shepherd and S. E. Smith and V. C. Sreedhar
                 and H. Srinivasan and J. Whaley",
  title =        "The {Jalape{\~n}o} virtual machine",
  journal =      "IBM Systems Journal",
  volume =       "39",
  number =       "1",
  pages =        "211--238",
  month =        "????",
  year =         "2000",
  CODEN =        "IBMSA7",
  ISSN =         "0018-8670",
  bibdate =      "Mon Apr 24 15:43:02 MDT 2000",
  URL =          "http://www.research.ibm.com/journal/sj/391/alpern.html",
  acknowledgement = ack-nhfb,
  keywords =     "Java",
  ordernumber =  "G321-0137",
}

@MISC{jpda,
  KEY =		 {jpda},
  TITLE =	 {Java Platform Debugger Architecture (JPDA) specification},
  HOWPUBLISHED = {{\tt http://java.sun.com/j2se/1.5.0/docs/guide/jpda/architecture.html}},
}

@MISC{jvmti,
  KEY =		 {jvmti},
  TITLE =	 {Java Virtual Machine Tool Interface (JVMTI) specification},
  HOWPUBLISHED = {{\tt http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html}},
}

@MISC{sablevm,
  TITLE = {Sable VM},
  HOWPUBLISHED = {{\tt http://www.sablevm.org/}}
}

@MISC{gij,
  TITLE = {GCJ/GIJ},
  HOWPUBLISHED = {{\tt http://gcc.gnu.org/java/}}
}

@MISC{classpath,
  TITLE = {GNU classpath},
  HOWPUBLISHED = {{\tt http://www.gnu.org/software/classpath}}
}

@MISC{eclipse,
  TITLE = {Eclipse},
  HOWPUBLISHED = {{\tt http://www.eclipse.org}}
}

@MISC{ptrace,
  TITLE = {PTrace},
  HOWPUBLISHED = {see linux manual page for ptrace}
}

@MISC{gdb,
  TITLE = {gdb},
  HOWPUBLISHED = {{\tt http://www.gnu.org/software/gdb/}}
}

