Revised
version of the paper
Revisions in the paper
Main changes in the paper are:
- The NULL assignment algorithm has been thoroughly revised and
significantly simplied. This has resulted in the following changes:
- The candidates access paths for consideration of NULL
assignment are now extensions of accessible (i.e. available or
anticipable) access paths rather than extensions of live access paths.
Thus the following are not required any more
- The concept of potentially nullable nodes
- Making the graph deterministic
- Selecting only acyclic paths from the resulting graphs
- The criteria of deciding where to insert NULL assignment has
also changed. Earlier it was a list of prioritised heuristic defined in
English and captured in an algorithm. Now it has been defined
mathematically in terms of some precisely defined properties.
- The overall analysis has now become much faster and the size of
access graphs has also reduced drastically. Now the average number of
nodes in an access graph is around 3 and average number of edges is
around 5.
- The access graphs have been extended to C/C++ model also
(Appendix C).
- Data flow equations have been refined a bit for achieving some
more precision. Now the last link of an access paths is not considered
to be used (because it is not dereferenced, it is only read or copied).