Most prior studies on alias analysis for JAVA programs
are for compiler optimization, such as synchronization removal
and escape analysis [2, 6, 16]. For such purposes,
all alias relations in the program need to be extracted by
the analysis. Since the optimized program should compute
the same execution results as the original program, analysis
results must satisfy conservative approximation. We believe
that alias analysis is useful for program maintenance
activities as a software engineering tool. For such activities,
not all the alias relations are needed at one time; only userrequested
relations on the specific scope or object are to be
extracted quickly. Also, good GUI that intuitively presents
the analysis results to the user is very important.
Currently, since JAAT’s control-flow representation does
not consider possible control-flows caused by exceptions or
threads, the resulting aliases contain surplus alias relations
for exceptions and they lack the aliases caused by shared
variables in threads. For exceptions, we applied a conservative
approach that assumes all possible exceptions that
might occur. However, since many researchers have already
proposed control-flow analysis methods for threads
and exceptions, we will adopt them to construct the improved
control-flow representation [17, 20].