Alias analysis is useful for program debugging and program
understanding. To show this, we present an example.
Fig.1(a) shows a sample JAVA program and Fig.1(b)
shows its execution outputs. This program computes the
salaries of employee Emp and manager Mng. The salary
of the manager should be higher than that of the employee.
However, the program execution output is incorrect since a
salary addition was made to Emp, not to Mng. When the
user recognizes such a fault, he/she computes the aliases
for reference variable Emp at line 32. In this paper, we call
such a target expression of the alias analysis the alias criterion
(or simply criterion), and it is specified by a tuple
, where s is a statement in the source program and
e is an expression at s. In the figure, shadowed expressions
represent the resulting aliases for . Emp at line
32 is the alias criterion and is also an alias itself. Therefore,
it is boxed and shadowed. We can easily see around
those shadowed expressions, and can identify a fault at the
salary addition statement at line 24. By modifying the statement
e.add salary(200) to add salary(200) at
line 24, the program will compute an expected result as
shown in Fig.1(c).