Publication 2001 Issue No. 6 - June Abstract - Complexity of Points-To Analysis of Java in the Presence of Exceptions
 This Article Share Bibliographic References Add to: Digg Furl Spurl Blink Simpy Google Del.icio.us Y!MyWeb Search Similar Articles Articles by Ramkrishna Chatterjee Articles by Barbara G. Ryder Articles by William A. Landi
Complexity of Points-To Analysis of Java in the Presence of Exceptions
June 2001 (vol. 27 no. 6)
pp. 481-512
 ASCII Text x Ramkrishna Chatterjee, Barbara G. Ryder, William A. Landi, "Complexity of Points-To Analysis of Java in the Presence of Exceptions," IEEE Transactions on Software Engineering, vol. 27, no. 6, pp. 481-512, June, 2001.
 BibTex x @article{ 10.1109/32.926173,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},volume = {27},number = {6},issn = {0098-5589},year = {2001},pages = {481-512},doi = {http://doi.ieeecomputersociety.org/10.1109/32.926173},publisher = {IEEE Computer Society},address = {Los Alamitos, CA, USA},}
 RefWorks Procite/RefMan/Endnote x TY - JOURJO - IEEE Transactions on Software EngineeringTI - Complexity of Points-To Analysis of Java in the Presence of ExceptionsIS - 6SN - 0098-5589SP481EP512EPD - 481-512A1 - Ramkrishna Chatterjee, A1 - Barbara G. Ryder, A1 - William A. Landi, PY - 2001KW - Points-to analysisKW - JavaKW - exceptionsKW - complexity.VL - 27JA - IEEE Transactions on Software EngineeringER -

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 difficulty 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: 1) 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++; 2) proof 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; 3) proof that an 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 ${\rm O}(n^5)$, which improves over the ${\rm O}(n^{7})$ worst-case bound achievable from previous approaches of Reps et al. [53] and Landi and Ryder [42].

Index Terms:
Points-to analysis, Java, exceptions, complexity.
Citation:
Ramkrishna Chatterjee, Barbara G. Ryder, William A. Landi, "Complexity of Points-To Analysis of Java in the Presence of Exceptions," IEEE Transactions on Software Engineering, vol. 27, no. 6, pp. 481-512, June 2001, doi:10.1109/32.926173