Reducing indirect function call overhead in C++ programs
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple and effective link-time optimization of Modula-3 programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast interprocedural class analysis
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Data-Flow-Based Virtual Function Resolution
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Compiler optimization of C++ virtual function calls
COOTS'96 Proceedings of the 2nd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 2
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Heap profiling for space-efficient Java
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Extracting Java library subsets for deployment on embedded systems
Science of Computer Programming - Software maintenance and reengineering (CSMR 99)
Compact Java binaries for embedded systems
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Automatic detection of immutable fields in Java
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
Hi-index | 0.00 |
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.