JAAT: A Practical Alias Analysis Tool for Java Programs
نویسندگان
چکیده
When an expression refers to a memory location that is referred to by another expression, we say that there is an alias relation between those expressions. Alias analysis, i.e, the extraction of such relations is essential for efficient maintenance of object-oriented programs. Although many researchers have already proposed analysis methods and implemented prototype tools for object-oriented programs, difficulties still remain in applying such methods to practical tools in the sense of precision, extensibility, and scalability. Focusing mainly on practical implementation, we propose an alias analysis method for object-oriented programs. This method employs a two-phase, on-demand, instance-based, and extensible algorithm. We have implemented the proposed method as JAAT. JAAT can analyze large programs such as Java Developer’s Kit (JDK) class library. We have applied JAAT to various large Java programs and confirmed JAAT’s performance.
منابع مشابه
JAAT: Java Alias Analysis Tool for Maintenance Activities
Alias analysis is a method for extracting sets of expressions which may possibly refer to the same memory locations during program execution. Although many researchers have already proposed analysis methods for the purpose of program optimization, difficulties still remain in applying such methods to practical software engineering tools in the sense of precision, extensibility and scalability. ...
متن کاملAlias Analysis with bddbddb
Context-sensitive inclusion-based alias analysis is very precise but also computationally expensive. Whaley and Lam [5] recently proposed an approach based on Binary Decision Diagrams that scales to realistic Java programs. This report summarizes the approach, describes how the tool bddbddb that implements the analysis is used, and discusses how it can be employed to develop derived analyses ba...
متن کاملAlias Analysis for Object-Oriented Programs
We present a high-level survey of state-of-the-art alias analyses for object-oriented programs, based on a years-long effort developing industrial-strength static analyses for Java. We first present common variants of points-to analysis, including a discussion of key implementation techniques. We then describe flow-sensitive techniques based on tracking of access paths, which can yield greater ...
متن کاملInter-procedural Analysis for Parallelization of Java Programs
Parallelization of Java programs is a complex task due to inheritance, dynamic method dispatching and aliases. Our research [2] aims to perform static analysis of Java programs in order to identify implicit parallelism. In this paper, we discuss rst the inter-procedural analysis technique we are studying and implementing to characterize data-dependency. And then we enhance this framework with t...
متن کاملPractical Static Ownership Inference
There are many proposals for ownership type systems designed to control aliasing in object-oriented programs. Most systems require significant annotation effort and therefore it may be difficult to adopt these systems in software practice. Ownership inference has received less attention, while it is an important problem because it could ease the annotation effort and facilitate application of o...
متن کامل