|
ABSTRACT
The object-oriented style of programming facilitates program adaptation and enhances program genericness, but at the expense of efficiency. We demonstrate experimentally that state-of-the-art Java compilers fail to compensate for the use of object-oriented abstractions in the implementation of generic programs, and that program specialization can eliminate a significant portion of these overheads. We present an automatic program specializer for Java, illustrate its use through detailed case studies, and demonstrate experimentally that it can significantly reduce program execution time. Although automatic program specialization could be seen as being subsumed by existing optimizing compiler technology, we show that specialization and compiler optimization are in fact complementary.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Reynald Affeldt , Hidehiko Masuhara , Eijiro Sumii , Akinori Yonezawa, Supporting objects in run-time bytecode specialization, Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation, p.50-60, September 12-14, 2002, Aizu, Japan
[doi> 10.1145/568173.568179]
|
| |
2
|
|
| |
3
|
|
 |
4
|
Bowen Alpern , C. R. Attanasio , Anthony Cocchi , Derek Lieber , Stephen Smith , Ton Ngo , John J. Barton , Susan Flynn Hummel , Janice C. Sheperd , Mark Mergen, Implementing jalapeño in Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.314-324, November 01-05, 1999, Denver, Colorado, United States
|
| |
5
|
Andersen, L. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, Computer Science Department, University of Copenhagen. DIKU Technical Report 94/19.
|
| |
6
|
Baier, R., Glück, R., and Zöchling, R. 1994. Partial evaluation of numerical programs in Fortran. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'94). Technical Report 94/9, University of Melbourne, Australia, Orlando, FL, USA, 119--132.
|
| |
7
|
Blount, B. and Chatterjee, S. 1999. An evaluation of Java for numerical computing. Scientific Programming 7(2), 97--110. Special Issue: High Performance Java Compilation and Runtime Issues.
|
| |
8
|
Bondorf, A. 1990. Self-applicable partial evaluation. Ph.D. thesis, DIKU, University of Copenhagen, Denmark. Revised version: DIKU Report 90/17.
|
 |
9
|
|
| |
10
|
Budimlić, Z. and Kennedy, K. 1999. Prospects for scientific computing in polymorphic, object-oriented style. In Proceedings of the Ninth SIAM Conference of Parallel Processing in Scientific Computing. SIAM, San Antonio.
|
| |
11
|
|
| |
12
|
Budimlić, Z., Kennedy, K., and Piper, J. 1999. The cost of being object-oriented: A preliminary study. Scientific Computing 7, 2, 87--95.
|
 |
13
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
 |
14
|
|
| |
15
|
|
| |
16
|
Cooper, K., Hall, M., and Kennedy, K. 1992. Procedure cloning. In Proceedings of the 1992 International Conference on Computer Languages. IEEE Computer Society Press, Oakland, CA, USA, 96--105.
|
 |
17
|
Jeffrey Dean , Craig Chambers , David Grove, Selective specialization for object-oriented languages, Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation, p.93-102, June 18-21, 1995, La Jolla, California, United States
|
| |
18
|
|
| |
19
|
|
 |
20
|
Julian Dolby , Andrew A. Chien, An evaluation of automatic object inline allocation techniques, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.1-20, October 18-22, 1998, Vancouver, British Columbia, Canada
|
 |
21
|
|
| |
22
|
|
| |
23
|
|
 |
24
|
David Grove , Jeffrey Dean , Charles Garrett , Craig Chambers, Profile-guided receiver class prediction, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.108-123, October 15-19, 1995, Austin, Texas, United States
|
 |
25
|
|
| |
26
|
|
| |
27
|
|
| |
28
|
IBM. 2001. IBM JDK 1.3.1. http://www.ibm.com/java/jdk.
|
| |
29
|
IBM. 2002. Jikes RVM 2.1.0. http://www.ibm.com/developerworks/oss/jikesrvm/.
|
| |
30
|
John Irwin , Jean-Marc Loingtier , John R. Gilbert , Gregor Kiczales , John Lamping , Anurag Mendhekar , Tatiana Shpeisman, Aspect-Oriented Programming of Sparse Matrix Code, Proceedings of the Scientific Computing in Object-Oriented Parallel Environments, p.249-256, December 08-11, 1997
|
 |
31
|
Kazuaki Ishizaki , Motohiro Kawahito , Toshiaki Yasue , Hideaki Komatsu , Toshio Nakatani, A study of devirtualization techniques for a Java Just-In-Time compiler, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.294-310, October 2000, Minneapolis, Minnesota, United States
|
| |
32
|
Java Grande Forum. 1999. The Java Grande Forum benchmark suite. http://www. javagrande.org.
|
| |
33
|
|
| |
34
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
35
|
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J. 1997. Aspect-oriented programming. In Proceedings of the European Conference on Object-oriented Programming (ECOOP'97), M. Aksit and S. Matsuoka, Eds. Lecture Notes in Computer Science, vol. 1241. Springer, Jyväskylä, Finland, 220--242.
|
| |
36
|
|
| |
37
|
|
| |
38
|
Luján, M. 1999. Object oriented linear algebra. M.S. thesis, University of Manchester.
|
 |
39
|
Mikel Luján , T. L. Freeman , John R. Gurd, OoLALA: an object oriented analysis and design of numerical linear algebra, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.229-252, October 2000, Minneapolis, Minnesota, United States
|
| |
40
|
Luján, M., Gurd, J., and Freeman, T. 2001. OoLaLa: Transformations for implementations of matrix operations at high abstraction levels. In Proceedings 4th Workshop on Parallel Object-Oriented Scientific Computing---POOSC'01. ACM Press, Tampa Bay, Florida, USA.
|
| |
41
|
Marquard, M. and Steensgaard, B. 1992. Partial evaluation of an object-oriented imperative language. M.S. thesis, University of Copenhagen.
|
| |
42
|
|
| |
43
|
|
| |
44
|
Hirotaka Ogawa , Kouya Shimura , Satoshi Matsuoka , Fuyuhiko Maruyama , Yukihiko Sohda , Yasunori Kimura, OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java, Proceedings of the 14th European Conference on Object-Oriented Programming, p.362-387, June 12-16, 2000
|
 |
45
|
John Plevyak , Andrew A. Chien, Precise concrete type inference for object-oriented languages, Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications, p.324-340, October 23-28, 1994, Portland, Oregon, United States
|
| |
46
|
Rajendra K. Raj , Ewan Tempero , Henry M. Levy , Andrew P. Black , Norman C. Hutchinson , Eric Jul, Emerald: a general-purpose programming language, Software—Practice & Experience, v.21 n.1, p.91-118, Jan. 1991
[doi> 10.1002/spe.4380210107]
|
| |
47
|
Schultz, U. 2000. Object-oriented software engineering using partial evaluation. Ph.D. thesis, University of Rennes I, Rennes, France.
|
| |
48
|
|
| |
49
|
|
| |
50
|
|
| |
51
|
SPEC. 1998. SPEC JVM 98 benchmarks. Standard Performance Evaluation Corporation. http://www.specbench.org/osg/jvm98/.
|
 |
52
|
Vugranam C. Sreedhar , Michael Burke , Jong-Deok Choi, A framework for interprocedural optimization in the presence of dynamic class loading, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.196-207, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
53
|
|
| |
54
|
Sun Microsystems, Inc. 1999. Sun JDK 1.2.2. http://java.sun.com/products/j2se.
|
| |
55
|
Sun Microsystems, Inc. 2002. Sun JDK 1.4.0. http://java.sun.com/products/j2se.
|
 |
56
|
Vijay Sundaresan , Laurie Hendren , Chrislain Razafimahefa , Raja Vallée-Rai , Patrick Lam , Etienne Gagnon , Charles Godin, Practical virtual method call resolution for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.264-280, October 2000, Minneapolis, Minnesota, United States
|
 |
57
|
Frank Tip , Chris Laffra , Peter F. Sweeney , David Streeter, Practical experience with an application extractor for Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.292-305, November 01-05, 1999, Denver, Colorado, United States
|
| |
58
|
Veldhuizen, T. 1999. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'98). ACM Press, San Antonio, TX, USA, 13--18.
|
| |
59
|
|
 |
60
|
Eugen N. Volanschi , Charles Counsel , Gilles Muller , Crispin Cowan, Declarative specialization of object-oriented programs, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.286-300, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
61
|
|
| |
62
|
XEROX 2000. AspectJ home page. http://aspectj.org. Xerox Corp.
|
 |
63
|
Ayal Zaks , Vitaly Feldman , Nava Aizikowitz, Sealed calls in Java packages, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.83-92, October 2000, Minneapolis, Minnesota, United States
|
|