Complexity of Points-to Analysis of Java in the Presence of Exceptions (2001)
| Venue: | IEEE Transactions on Software Engineering |
| Citations: | 6 - 0 self |
BibTeX
@ARTICLE{Chatterjee01complexityof,
author = {Ramkrishna Chatterjee and Barbara G. Ryder and William A. Landi},
title = {Complexity of Points-to Analysis of Java in the Presence of Exceptions},
journal = {IEEE Transactions on Software Engineering},
year = {2001},
volume = {27}
}
Years of Citing Articles
OpenURL
Abstract
At each program point, points-to analysis for statically typed object-oriented programming languages (e.g., Java, C ++ ) determines those objects to which a reference may refer (or a pointer may point) during execution. Points-to analysis is necessary for any semantics-based software tools for object-oriented systems. Our new complexity results for points-to analysis distinguish the di#culty of intraprocedural and interprocedural points-to analyses for languages with combinations of single-level types (i.e., types with data members only of primitive type), exceptions with or without subtyping, and dynamic dispatch. Our results include: . The first polynomial-time algorithm for points-to analysis in the presence of exceptions that handles a robust subset of Java without threads and can be applied to C ++ ; . Proofs that the above algorithm is safe in general and provably precise on programs with single-level types and exceptions without subtyping, but not dynamic dispatch; thus this case is in P; . Proof that interprocedural points-to analysis problem with single-level types and exceptions with subtyping, but without dynamic dispatch, is PSPACE-hard, while the intraprocedural problem is PSPACE-complete. Other complexity characterizations of points-to analysis in programs without exceptions are presented, including an algorithm with worst-case bound of O(n 5 ), which improves over the O(n 7 ) worst-case bound achievable from previous approaches of Reps, Horwitz and Sagiv [RHS95] and Landi and Ryder [LR91]. Keywords: Points-to Analysis, Java, Exceptions, Complexity. # The research reported here was supported, in part, by NSF grants GER-9023628, CCR97-04703 and the Hewlett-Packard Corporation. An abridged version of this paper appeared as [CRL98]. 1







