|
ABSTRACT
This paper describes a Java package, JAN, that collects and manipulates static information of a Java application. The focus of JAN (Java ANalysis), is to provide an effective technique for building the call graph of a given Java application. This view may be used for program understanding, as well as for optimization purposes; such as code size reduction and devirtualization. JAN extends techniques that were developed for other Object Oriented languages. Its main contribution is in coping with the special features of Java. We introduce the notion of partial analysis by distinguishing between set of classes to be analysed, versus a set of classes that are preprocessed.This is extremely useful in Java where a great percentage of the application code belongs to library classes that are independent of the user code. JAN has been extended to support hierarchy analysis and call graph construction for (RMI-based) distributed Java applications.
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
|
Ole Agesen , Urs Hölzle, Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.91-107, October 15-19, 1995, Austin, Texas, United States
|
 |
2
|
David F. Bacon , Peter F. Sweeney, Fast static analysis of C++ virtual function calls, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.324-341, October 06-10, 1996, San Jose, California, United States
|
 |
3
|
|
| |
4
|
|
 |
5
|
Greg DeFouw , David Grove , Craig Chambers, Fast interprocedural class analysis, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.222-236, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268965]
|
 |
6
|
|
 |
7
|
David Grove , Greg DeFouw , Jeffrey Dean , Craig Chambers, Call graph construction in object-oriented languages, Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.108-124, October 05-09, 1997, Atlanta, Georgia, United States
|
| |
8
|
|
| |
9
|
{9} S. Porat, D. Bernstein., Y. Fedorov, J. Rodrigue and E. Yahav. Compiler Optimization of C++ Virtual Function Calls. In Proc. of the Second Conference on Object-Oriented Technologies and Systems(COOTS), pages 3-14, Toronto, Canada, Jun. 1996.
|
| |
10
|
{10} H.D. Pande and B.G. Ryder. Static Type Determination for C++. In Proc. of the Sixth Usenix C++ Technical Conference, pages 85-97, April 1994.
|
| |
11
|
|
CITED BY 5
|
|
|
|
|
|
|
|
Sara Porat , Marina Biberstein , Larry Koved , Bilha Mendelson, Automatic detection of immutable fields in Java, Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research, p.10, November 13-16, 2000, Mississauga, Ontario, Canada
|
|
|
|
|
|
Derek Rayside , Evan Mamas , Erik Hons, Compact Java binaries for embedded systems, Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, p.9, November 08-11, 1999, Mississauga, Ontario, Canada
|
|