Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
145
[4] Gosling J., Java Intermediate Bytecodes. ACM SIGPLAN workshop on
intermediate representations,1995.
[5] Gosling J., Joy B., Steele G., The Java Language Specification. Addison-Wesley,
1996.
[6] Gosling J., McGilton H., The Java Language Environment, a White Paper. Sun
Microsystems Computer Corporation, October 1995.
[7] Lindholm T., Yellin F., The Java Virtual Machine Specification. Addison-Wesley.
1997.
[8] Van Hoff A., The Case for Java as a Programming Language. IEEE Internet
Computing, January 1997.
[9] Venners B., Inside the Java Virtual Machine. McGraw Hill. 1998.
11.2. Java Virtual Machine Implementations
[10] Chang P.P., Mahlke S.A., Chen W.Y., Warter N. J., Hwu W.W., IMPACT: an
Architectural Framework for Multiple-instruction-issue Processors. In
proceedings of ISCA ‘91, Toronto, Canada, pages 266-275. June 1991.
[11] Hsieh C.H.A., Gyllenhaal J.C., Hwu W.W., Java Bytecode to Native Code
Translation: The Caffeine Prototype and Preliminary Results. In proceedings of
ISM ’96, December 1996.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
146
[12] Kienle H., Holzle U., j2s: a SUIF Java Compiler. In proceedings of SUIF
Compiler Workshop Stanford University, August 1997.
[13] McGhan H., O’Connor M., PicoJava: a Direct Execution Engine for Java
Bytecode, IEEE Computer, October 1998.
[14] Muller G., Moura B., Bellard F., Consel C., Harissa: a Flexible and Efficient Java
Environment Mixing Bytecode and Compiled Code. In proceedings of COOTS’97,
Portland, Oregon, June 1997.
[15] Proebsting T., Townsend G., Bridges P., Hartman J., Newsham T., Watterson S.,
Toba: Java For Applications, a Way Ahead of Time (WAT) Compiler In
proceedings of COOTS’97, Portland, Oregon, June 1997.
[16] Wilkinson T., KAFFE – a JIT Virtual Machine to Run Java Code. In proceedings
of Atlanta Linux Showcase ’98.
11.3. Ottimizzazioni Object-Oriented
[17] Adams R., Tichy W., Weinert A., The Cost of Selective Recompilation and
Environment Processing. ACM Transactions on Software Engineering and
Methodology, 3(1):3-28, January 1994.
[18] Agesen O., Holzle U., Type Feedback vs. Concrete Type Analysis: a Comparison
of Optimization Techniques for Object-Oriented Languages. In proceedings of
OOPSLA ’95, Austin , Tx, October 1995.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
147
[19] Agesen O., The Cartesian Product Algorithm: Simple and Precise Type Inference
of Parametric Polymorphism. In proceedings of ECOOP ’95, Aarhus, Denmark,
August 1995.
[20] Aigner G., Holzle U., Eliminating Virtual Calls in C++ Programs. In proceedings
of ECOOP ’96, Linz, Austria, August 1996.
[21] Allen F.E., Interprocedural Data Flow Analysis. In proceedings of IFIP ’74 ,
pages 398-402, 1974.
[22] Allen F.E.,Cocke J., A Catalogue of Optimizing Transformations. In Design and
optimization of a compiler (J. Rustin, ed.), Prentice-Hall, 1972.
[23] Ashley J.M., The Effectiveness of Flow Analysis for Inlining. In proceedings of
ACM SIGPLAN ’97 International Conference on Functional Programming, pages
99-111, Amsterdam, The Netherlands, June 1997.
[24] Bacon D.F., Sweeney P.F., Fast Static Analysis of C++ Virtual Function Calls. In
proceedings of OOPSLA’96 conference, San Jose, CA, October 1996.
[25] Bieman J.M., Zhao J.X., Reuse Through Inheritance: a Quantitative Study of
C++ Software. In Proceedings of ACM SIGSOFT ’95 Symposium on Software
Reusability, August 1995.
[26] Burke M., Torczon L., Interprocedural Optimization: Eliminating Unnecessary
Recompilation. ACM Transaction on Programming Languages and Systems, 15(3):
pages 367-399, July 1993.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
148
[27] Calder B., Grunwald D., Reducing Indirect Function Call Overhead in C++
Programs. In proceedings of ACM ’94 Symposium on Principles of Programming
Languages, pages 397-351, 1994.
[28] Calder B., Grunwald D., Zorn B., Quantifying Behavioral Differences between C
and C++ Programs. Journal of programming languages, 2: pages 313-351, 1994.
[29] Callahan D., Cooper K.D., Kennedy K., Torczon L., Interprocedural Constant
Propagation. In Proceedings of ACM SIGPLAN ’86 Symposium on Compiler
Construction, pages 152–161, July 1986.
[30] Chambers C., Dean J., Grove D., A Framework for Selective Recompilation in the
Presence of Complex Intermodule Dependencies. In proceedings of ICSE ’95,
Seattle,Wa, April 1995.
[31] Chambers C., Dean J., Grove D., Frameworks for Intra- and Interprocedural
Dataflow Analysis. Technical Report UW-CSE-96-11-02, University of
Washington, November 1996.
[32] Chambers C., Dean J., Grove D., Whole-program Optimization of Object-Oriented
Languages. Technical Report 96-06-02, Department of Computer Science,
University of Washington, June 1996.
[33] Chambers C., Ungar D., Customization: Optimizing Compiler Technology for
SELF, a Dynamically-typed Object-oriented Programming Language. In
Proceedings of ACM SIGPLAN ’89 Conference on Programming Language
Design and Implementation, pages 146-160, June 1989.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
149
[34] Chambers C., Ungar D., Iterative Type Analysis and Extended Message Splitting:
Optimizing Dynamically-typed Object-Oriented Programs. In Proceedings of
SIGPLAN ’90 Conference on Programming Language Design and Implementation,
pages 150-164, White Plains, NY, June 1990.
[35] Chambers C., Ungar D., Lee E., An Efficient Implementation of SELF, a
Dynamically-typed Object-Oriented Language based on Prototypes. In
OOPSLA’89, Object-Oriented Programming Systems, Languages and
Applications, pages 49-70, New Orleans, LA, October 1989.
[36] Chambers C., UngarD., Making Pure Object-Oriented Languages Practical. In
OOPSLA’91 conference proceedings, pages 1-15, Phoenix, AZ, october 1991.
[37] Chang P.P., Mahlke S.A., Chen W.Y., Hwu W.W., Profile-guided Automatic
Inline Expansion for C Programs. Software-Practice and Experience 22 (5), pages
349-369, May 1992.
[38] Cooper K.D., Hall M.W., Torczon L., An Experiment with Inline Substitution.
Software Practice and Experience, pages 581-601, June 1999.
[39] Cooper K.D., Hall M.W., Torczon L., Unexpected Side Effects of Inline
Substitution: A Case Study., ACM Letters on Programming Languages and
Systems, March 1992, pages 23-32.
[40] David Wall D., Predicting Program Behavior using Real or Estimated Profiles. In
Proceedings of ACM SIGPLAN’91 Conference on Programming Language Design
and Implementation, pages 59-70, Toronto, Canada, June 1991.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
150
[41] Davidson J.W., Holler A.M., A Study of a C Function Inliner. Software-Practice
and Experience 18(8), pages 775-790, August 1988.
[42] Dean J., DeFouw G., Grove D., Litvinov V., Chambers C., Vortex: an Optimazing
Compiler for Object-Oriented Languages. In proceedings of OOPSLA ’96, pages
93-100, San Jose (CA), 1996.
[43] Dean J., Grove D., Chambers C., Optimization of Object-Oriented Programs using
Static Class Hierarchy Analysis. In Proceedings of ECOOP ’95, Aarhus, Denmark,
1995.
[44] Dean J., Grove D., Chambers C., Towards Better Inlining Decision using Inlining
Trials. In Proceedings of ACM conference on LISP and functional programming,
Orlando , FL, June 1994.
[45] DeFouw G., Grove D., ChambersC., Fast Interprocedural Class Analysis. In
proceedings of POPL’98, San Diego, CA, January 1998.
[46] Deutsch P., Efficient Implementation of the Smalltalk-80 System. In Proceedings
of ACM Symposium on the Principles of Programming Languages, pag. 300,
1984.
[47] Diwan A., Eliot J., Moss B., McKinley K.S., Simple and Effective Analysis of
Statically-typed Object-Oriented Programs. In proceedings of OOPSLA ’96, San
Jose, CA, October 1996.
[48] Dolby J., Automatic Inline Allocation of Objects. In proceedings of ACM
SIGPLAN ’97 Conference on Programming Language Design and Implementation,
pages 7-17, June 1997.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
151
[49] Douglas Lea D., Customization in C++. In proceedings of Usenix C++ conference,
pages 301-314, San Francisco, CA, April 1990.
[50] Driesen K., Holzle U., The Direct Cost of Virtual Function Calls in C++. In
proceedings of OOPSLA ’96, October 1996.
[51] Ershov A., ALPHA-- an Automatic Programming System of High Efficiency.
Journal of the ACM 13(1), January 1966.
[52] Fernandez M., Simple and Effective Link-time Optimization of Modula-3
Programs. In Proceedings of ACM SIGPLAN ’95 Conference on Programming
Language Design and Implementation, Austin, TX, June 1995.
[53] Grove D., Dean J., Garrett C., Chambers C., Profile-guided Receiver Class
Prediction. In proceedings of OOPSLA ’95, pages 108-123, Austin, TX, October
1995.
[54] Grove D., The Impact of Interprocedural Class Analysis on Optimization. In
proceedings of CASCOM ’95, 1995.
[55] Hoelzle U., Ungar D., Do Object-Oriented Languages Need Special Hardware
Support?. In proceedings of ECOOP ’95, Aarhus, Denmark, August 1995.
[56] Holler A.M., A Study of the Effects of Subprogram Inlining. Ph.D. dissertation,
Department of Computer Science, University of Virginia, August, 1990.
[57] Hölzle U., Agesen O., Dynamic vs. Static Optimization Techniques for Object-
Oriented Languages. Theory and Practice of Object Systems, 1(3), 1996.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
152
[58] Holzle U., Chambers C., Ungar D., Optimizing Dynamically-typed Object-
Oriented Languages with Polymorphic Inline Caches. In proceedings of
ECOOP’91, pages 21-38, Geneva, July 1991.
[59] Holzle U., Ungar D., Optimizing Dynamically-dispatched Calls with Runtime
Type Feedback. In proceedings of ACM SIGPLAN ’94 Conference on
Programming Language and Design Implementation, pages 29(6), pages 326-336.
SIGPLAN Notice, June 1994.
[60] Hsieh C.H.A., Conte M.T., Johnson T.L., Gyllenhaal J.C., Wen-mei W. Hwu.
Optimizing NET Compilers for Improved Java Performance. IEEE Computer,
pages 67-75, June 1997.
[61] Hummel J., Azevedo A., Kolson D., Nicolau A., Annotating and Optimizing the
Java Bytecodes. Workshop on Security and Efficiency Aspects of Java, Eilat,
Israel, January 1997.
[62] Hwu W.W., Chang P.P., Inline Function Expansion for Compiling C Programs.
In proceedings of ACM SIGPLAN ’89 Conference on Programming Language
Design and Implementation, pages 246-257, Portland, OR, June 1989.
[63] Kildall G.A., A Unified Approach to Global Program Optimization. In
proceedings of ACM Symposium on Principles of Programming Languages, pages
194–206, October 1973.
[64] Olin Shivers O., Control-flow Analysis of Higher-order Languages. PhD thesis,
Carnegie Mellon University, Pittsbourgh, PA, May 1991.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
153
[65] Oxhøj N., Palsberg J., Schwartzbach M.I., Making Type Inference Practical. In
proceedings of ECOOP ’92, Utrecht, The Netherlands, June 1992.
[66] Palsberg J., Schwartzbach M.I., Object-Oriented Type Inference. In proceedings of
OOPSLA ’91, pages 146–161, November 1991.
[67] Pande H.D., Ryder B.G., Static Type Determination for C++. In proceedings of
USENIX C++ technical conference, 1994.
[68] Plevyak J.B., Chien A.A., Precise Concrete Type Inference for Object-Oriented
Languages. In proceedings of OOPSLA’94, pages 324-340, Portland, OR, October
1994.
[69] Richardson S., Ganapathi M., Interprocedural Optimization: Experimental
Results. Software-Practice and Experience 19(2), February 1989.
[70] Ryder B., Constructing the Call Graph of a Program. IEEE Transactions on
Software Engineering, 5(3): pages 216–225, 1979.
[71] Scheifler R.W., An Analisys of Inline Substitution for a Structured Programming
Languages. In Communications of the ACM 20(9), pages 647-654, September
1977.
[72] Vitek J., Horspool N., Uhl J.S., Compile Time Analysis of Object-Oriented
Programs. In Proceedings of CC’92 International Conference on Compiler
Construction, pages 237–250, October 1992.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
154
[73] Wolcott Hall M., Managing interprocedural optimization. Technical report COMP
TR91-157 (Ph.D. Thesis), Computer Science Department, Rice University, April
1991.
11.4. Miscellaneous
[74] Aho A.V., Sethi R., Ullman J.D., Compiler – Principles, Techniques and Tools.
Addison Wesley. March 1998.
[75] Apple Computer,Inc. Object Pascal User’s Manual. Cupertino, 1988.
[76] Bellotti F., De Gloria A., Risso M., Villamaina A., AutoGral: Java APIs for
Multimedia Automotive Applications. TRP Unige DIBE, 1999.
[77] Bellotti, F., De Gloria, A., Grosso, D., A Java Based Web Application which
Addresses Urban Traffic Problems Relying on Real Time Collected Data. In
proceedings of IMACS’99, Athens, Greece, July 1999.
[78] Boehm H.J., Weiser M., Garbage Collection in an Uncooperative Environment.
Software Practice and Experience, pages 807-820, September 1988.
[79] Booch G., Object Oriented Design with Applications. The Benjamin-Cummings
Publishing Company, Inc. 1991
[80] Chang P., Hao E., Patt Y.N., Target Prediction for Indirect Jumps. Proceedings of
International Symposium on Computer Architecture, July 1997.
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
155
[81] Conte M.T., Trick A.R., Gyllenhaal J.C., Hwu W.W., A Study of Code Reuse and
Sharing Characteristics of Java Applications. Workshop on Workload
Characterization, Micro-31, November 29th, 1998.
[82] Chambers C., Ungar D., Lee E., An Efficient Implementation of Self – a
Dynamically-Typed Object-Oriented Language Based on Prototypes. In
Proceedings of OOPSLA ’89, pages 49–70, October 1989.
[83] Chambers C., The Cecil language: Specification and rationale. Technical report .
Department of Computer Science, University of Washington, March 1993.
[84] Driesen K., Holzle U., Accurate Indirect Branch Prediction. Technical report,
University of California, Santa Barbara, 1997.
[85] Driesen K., Holzle U., Vitek J., Message Dispatch on Pipelined Processors. In
proceedings of ECOOP ’95, Aarhus, Denmark, August 1995.
[86] Evers M., Patel S., Chappell R.S., Patt Y.N., An Analysis of Correlation and
Predictability: What Makes Two-Level Branch Predictors Work. In proceedings
of 25
th
International Symposium on Computer Architecture. Barcelona, June 1998.
[87] Friedman-Hill E., JESS http://herzberg1.ca.sandia.gov/jess/. Sandia National
Laboratories.
[88] Hsieh C.H.A., Conte M.T., Johnson T.L., Gyllenhaal J.C., Hwu W.W., A Study of
the Cache and Branch Performance Issues with Running Java on Current
Hardware Platforms. In proceedings of COMPCON, 1997.
[89] Jasik B., DIS: a Java disassembler. http://members.tripod.com/~benjasik/dis/
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
156
[90] Kam J.B., Ullman J.D., Global Data Flow Analysis and Iterative Algorithms.
Journal of the ACM, 7(3), pages 305-318, 1976.
[91] Muchnick S.S., Advanced Compiler Design and Implementation. Morgan
Kaufmann, San Francisco, CA, 1997.
[92] Nayeri F., Hurwitz B., Manola F., Generalizing Dispatching in a Distributed
Object System. In proceedings of European Conference on Object-Oriented
Programming, Bologna, Italy, July 1994.
[93] Odersky M., Wadler P., Pizza into Java: Translating Theory into Practice. In
proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of
Programming Languages, pages 146–159, January 1997.
[94] Plezbert M.P., Cytoon R.K., Does “Just in time” = “better late than never”. In
proceedings of POPL ’97 pages 120-131, Paris, France, January 1997.
[95] Proebsting T., Watterson S., Krakatoa: Decompilation in Java (Does Bytecode
Reveal Source?). In proceedings of COOTS '97, June 1997.
[96] Stallman R. M., Internals of GNU CC, 1988.
[97] Stroustrup B., The C++ Programming Language. 1986 Addison-Wesley.
11.5. Internet Links
[98] Caffeinemark http://www.webfayre.com/pendragon/cm2/index.html
[99] Harissa http://www.irisa.fr/compose/harissa/harissa.html
Bibliografia
Università degli Studi di Genova
Dipartimento di Ingegneria Biofisica ed Elettronica
157
[100] IMPACT ftp://ftp.crhc.uiuc.edu/pub/IMPACT
[101] j2c http://www.webcity.co.jp/info/andoh/java/j2c.html
[102] Java Sun, Sun Microsystems, http://www.java.sun.com
[103] JavaWorld http://www.javaworld.com
[104] JCC: Java to C http://www.geocities.com/CapeCanaveral/Hangar/4040/jcc.html
[105] Kaffe http://web.soi.city.ac.uk/homes/tim/kaffe/kaffe.html
[106] SPECJVM98 http://www.spec.org/osg/jvm98/
[107] Symantec http://cae.symantec.com/cafe/fs_jit.html
[108] Java Virtual Machine Specification http://www.java.sun.com/docs/books/vmspec/
[109] TOBA http://www.cs.arizona.edu/sumatra/toba/
[110] Visual Age for Java http://www.software.ibm.com/ad/vajava