Bibliography

1
Bowen Alpern, Dick Attanasio, John Barton, Michael Burke, Perry Cheng, Jong-Deok Choi, Anthony Cocchi, Stephen Fink, David Grove, Michael Hind, Susan Flynn Hummel, Derek Lieber, Vassily Litvinov, Ton Ngo, Mark Mergen, Vivek Sarkar, Mauricio Serrano, Janice Shepherd, Stephen Smith, VC Sreedhar, Harini Srinivasan, and John Whaley.
The Jalapeno virtual machine.
In IBM Systems Journals, Java Performance Issue, 2000.
http://www.zaleski.ca/papers/Thesis/jalapeno/jalapenoJVMibmJournal2000.pdf .

2
Joel Auslander, Matthai Philipose, Craig Chambers, Susan J. Eggers, and Brian N. Bershad.
Fast, effective dynamic compilation.
In SIGPLAN Conference on Programming Language Design and Implementation, pages 149-159, 1996.
http://citeseer.nj.nec.com/auslander96fast.html.

3
Vasanth Bala, Evelyn Duesterwald, and Sanjeev Banerjia.
Transparent dynamic optimization: The design and implementation of Dynamo.
Technical report, Hewlet Packard, 1999.
http://www.hpl.hp.com/techreports/1999/HPL-1999-78.html.

4
Vasanth Bala, Evelyn Duesterwald, and Sanjeev Banerjia.
Dynamo: a transparent dynamic optimization system.
In SIGPLAN Conference on Programming Language Design and Implementation, pages 1-12, 2000.
http://citeseer.nj.nec.com/bala00dynamo.html.

5
Derek Bruening and Evelyn Duesterwald.
Exploring optimal compilation unit shapes for an embedded just-in-time compiler.
In 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization FDDO-3, 2000.
http://www.eecs.harvard.edu/fddo/papers/108.ps.

6
Derek Bruening, Evelyn Duesterwald, and Saman Amarasinghe.
Design and implementation of a dynamic optimization framework for windows.
In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-4), December 2000.
http://www.zaleski.ca/papers/Thesis/DynamicOpt/bruening01fddo4.pdf .

7
Derek Bruening, Timothy Garnett, and Saman Amarasinghe.
An infrastructure for adaptive dynamic optimization.
In In Proceedings of the First Annual IEEE/ACM International Symposium on Code Generation and Optimization (CGO), March 2003.
http://www.cag.lcs.mit.edu/dynamorio/CGO03.pdf.

8
Craig Chambers.
The Design and Implementation of the Self Compiler, an Optimizing Compiler for Object-Oriented Programming Languages.
PhD thesis, Stanford University, 1988.

9
Wen-Ke Chen, Sorin Lerner, Ronnie Chaiken, and David Gillies.
Mojo: A dynamic optimization system.
In Proceedings of the Third ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-3), 2000.
http://www.cs.washington.edu/homes/lerns/mojo.pdf.

10
Standard Performance Evaluation Corporation.
SPEC jvm98 benchmarks.
http://www.spec.org/osg/jvm98.

11
Timothy Cramer, Richard Friedman, Terrence Miller, David Seberger, Robert Wilson, and Mario Wolczko.
Compiling Java just in time.
IEEE Micro, 17(3):36-43, 1997.
http://ieeexplore.ieee.org/iel1/40/12908/00591653.pdf.

12
Peter L. Deutsch and A. M. Schiffman.
Efficient implementation of the Smalltalk-80 system.
In Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, pages 297-302, Salt Lake City, Utah, January 1984. ACM Press.
http://www.zaleski.ca/papers/Thesis/Smalltalk/deutsch-schiffman-popl84.pdf .

13
Karel Driesen.
Efficient Polymorphic Calls.
Klumer Academic Publishers, 2001.

14
Evelyn Duesterwald and Vasanth Bala.
Software profiling for hot path prediction: less is more.
ACM SIGPLAN Notices, 35(11):202-211, 2000.

15
Paolo Faraboschi, Joseph A. Fisher, and Cliff Young.
Instruction scheduling for instruction level parallel processors.
In Proceedings of the IEEE, 2001.
http://www.zaleski.ca/papers/Thesis/TraceScheduling/Farab-Fisher-YoungSchedule2001.pdf.

16
Stephen Gilmore.
Programming in standard ML '97: A tutorial introduction.
http://www.dcs.ed.ac.uk/home/stg, 1997.

17
Adele Goldberg and David Robson.
Smalltalk-80: The Language.
Addison-Wesley, 1989.

18
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, and Susan J. Eggers.
DyC: an expressive annotation-directed dynamic compiler for C.
Theoretical Computer Science, 248(1-2):147-199, 2000.
http://www.zaleski.ca/papers/Thesis/DynamicOpt/grant98dyc.pdf .

19
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, and Susan.J. Eggers.
An evaluation of staged run-time optimizations in Dyc.
In Conference on Programming Language Design and Implementation, May 1999.
http://www.cs.washington.edu/research/projects/unisw/DynComp/www/Papers/pldi99.pdf.

20
David Grove and Craig Chambers.
A framework for call graph construction algorithms.
ACM Transactions on Programming Languages and Systems, November 2001.
http://www.zaleski.ca/papers/Thesis/GrovesHints/toplas2118.pdf .

21
Kim Hazelwood and David Grove.
Adaptive online context-sensitive inlining.
In International Symposium on Code Generation and Optimization, March 2002.
http://www.research.ibm.com/people/d/dgrove/papers/cgo03.pdf.

22
Kim Hazelwood and Michael D. Smith.
Code cache management schemes for dynamic optimizers.
In Sixth Annual Workshop on Interaction between Compilers and Computer Architectures held in conjunction with the Eighth International Symposium on High-Performance Computer Architecture, Feb 2002.
http://www.eecs.harvard.edu/hube/publications/interact6.pdf.

23
Glenn Hinton, Dave Sagar, Mike Upton, Darrell Boggs, Doug Carmean, Alan Kyker, and Patrice Roussel.
The microarchitecture of the pentium 4 processor.
Intel Technology Journal, Q1, 2001.
http://www.intel.com/technology/itj/q12001.htm.

24
Urs Hölzle.
Adaptive Optimization For Self:Reconciling High Performance With Exploratory Programming.
PhD thesis, Stanford University, 1994.

25
Urs Hölzle, C. Chambers, and D. Ungar.
Debugging optimized code with dynamic deoptimization.
In Conference on Programming Language Design and Implementation, 1992.
http://www.cs.ucsb.edu/labs/oocsb/papers/pldi92.pdf.

26
Urs Hölzle and David Ungar.
A third-generation Self implementation: Reconciling responsiveness with performance.
In Proceedings of the OOPSLA '94 conference on Object Oriented Programming Systems Languages and Applications, 1994.
http://research.sun.com/self/papers/third-generation.html.

27
Ronald L. Johnston.
The dynamic incremental compiler of apl 3000.
In Proceedings of the international conference on APL: part 1, pages 82-87, 1979.
http://doi.acm.org/10.1145/800136.804442.

28
William N. Joy, Susan L. Graham, Charles B. Haleyà, Marshall Kirk McKusick, and Peter B. Kessler.
Berkeley pascal user's manual version 3.1.
http://citeseer.nj.nec.com/188577.html.

29
Thompson K.
Regular expression search algorithm.
CACM, June 1968.
http://www.zaleski.ca/papers/Thesis/DynamicOpt/regexp-thompson.pdf.

30
Peter Lee and Mark Leone.
Optimizing ML with run-time code generation.
In SIGPLAN Conference on Programming Language Design and Implementation, pages 137-148, 1996.
http://www.zaleski.ca/papers/Thesis/DynamicOpt/MLlee_leone_pldi96.pdf .

31
Tim Lindholm and Frank Yellin.
The Java Virtual Machine Specification.
Addison-Wesley, 1996.

32
P. Geoffrey Lowney, Stefan M. Freudenberger, Thomas J. Karzes, W. D. Lichtenstein, Robert P. Nix, John S. O'Donnell, and John C. Ruttenberg.
The Multiflow Trace Scheduling compiler.
The Journal of Supercomputing, 7(1-2):51-142, 1993.
http://citeseer.nj.nec.com/lowney92multiflow.html.

33
Sun Microsystems.
The Java hotspot virtual machine, v1.4.1, technical white paper.
http://java.sun.com/products/hotspot/docs/whitepaper/ Java_Hotspot_v1.4.1/Java_HSpot_WP_v1.4.1_1002_1.html, 2002.

34
Steven S Muchnick.
Advanced Compiler Design and Construction.
Morgan Kaufman, 1997.

35
M. Paleczny, C. Click, and C. Vick.
The Java hotspot server compiler.
In 2001 USENIX Java Virtual Machine Symposium, 2001.
http://www.usenix.org/events/jvm01/full_papers/paleczny/paleczny.pdf .

36
S. Patel and S. S. Lumetta.
rePLay: A Hardware Framework for Dynamic Optimization.
IEEE Transactions on Computers, 50(6):590-608, June 2001.
http://www.crhc.uiuc.edu/~steve/papers/rePLay.ps.

37
Igor Pechtchanski and Vivek Sarkar.
Dynamic optimistic interprocedural analysis: A framework and an application.
In 2001 ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, October 2001.
http://www.cs.nyu.edu/phd_students/pechtcha/pubs/oopsla01.pdf.

38
Steven Pemberton and Martin C. Daniels.
Pascal Implementation, The P4 Compiler.
Ellis Horwood, 1982.
http://www.cwi.nl/~steven/pascal/book/10pcode.html.

39
Rob Pike, Bart Locanthi, and John Reiser.
Hardware/software trade-offs for bitmap graphics on the blit.
Software - Practice and Experience, 15(2):131-151, 1985.
http://citeseer.nj.nec.com/324101.html.

40
Alex Ramirez, Josep-Lluis Larriba-Pey, Carlos Navarro, Josep Torrellas, and Mateo Valero.
Software trace cache.
In International Conference on Supercomputing, pages 119-126, 1999.
http://citeseer.nj.nec.com/15361.html.

41
Eric Rotenberg, Steve Bennett, and James E. Smith.
Trace cache: A low latency approach to high bandwidth instruction fetching.
In International Symposium on Microarchitecture, pages 24-35, 1996.
http://www.zaleski.ca/papers/Thesis/hwTrace/rotenberg96trace.pdf .

42
Bjarne Stroustrup.
The C++ Programming Language, Second Edition.
Addison Wesley, 1991.

43
Toshio Suganuma, Takeshi Ogasawara, Mikio Takeuchi, Toshiaki Yasue, Motohiro Kawahito, Kazuaki Ishizaki, Hideaki Komatsu, and Toshio Nakatani.
Overview of the IBM Java just-in-time compiler.
IBM Systems Journals, Java Performance Issue, 39(1), February 2000.
http://www.research.ibm.com/journal/sj/391/suganuma.html.

44
David Ungar, Randall B. Smith, Craig Chambers, and Urs Hölzle.
Object, message, and performance: how they coexist in Self.
IEEE-COMPUTER, 25(10):53-64, October 1992.
http://www.zaleski.ca/papers/Thesis/Self/self_ieee_comp_00161280.pdf.

45
Hank S Warren, Jr.
Instruction scheduling for the IBM RISC system/6000 processor.
IBM Systems Journals, 34(1), Jan 1990.

46
Emmett Witchel and Mendel Rosenblum.
Embra: Fast and flexible machine simulation.
In Measurement and Modeling of Computer Systems, pages 68-79, 1996.
citeseer.nj.nec.com/witchel96embra.html.

47
Mathew Zaleski.
A better way of running object-oriented bytecode? a research proposal.
http://www.cs.toronto.edu/~matz/prop.pdf, April 2003.

48
Mathew Zaleski.
Jootch, a simulation of bytecode trace selection and creation in a JVM.
http://www.cs.toronto.edu/~matz/traceCreation.pdf, April 2003.



Mathew Zaleski 2003-04-26