Lifetime analysis of dynamically allocated objects
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pointer-induced aliasing: a problem classification
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The semantic approach to program slicing
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Object-oriented type inference
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
Interprocedural aliasing in the presence of pointers
Interprocedural aliasing in the presence of pointers
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Interprocedural modification side effect analysis with pointer aliasing
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Incremental program testing using program dependence graphs
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Undecidability of static analysis
ACM Letters on Programming Languages and Systems (LOPLAS)
Pointer-induced aliasing: a clarification
ACM SIGPLAN Notices
Efficient computation of interprocedural definition-use chains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Context-insensitive alias analysis reconsidered
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Hybrid slicing: an approach for refining static slices using dynamic information
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Precise interprocedural chopping
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
The design of whole-program analysis tools
Proceedings of the 18th international conference on Software engineering
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Slicing class hierarchies in C++
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program decomposition for pointer aliasing: a step toward practical analyses
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Flow insensitive C++ pointers and polymorphism analysis and its application to slicing
ICSE '97 Proceedings of the 19th international conference on Software engineering
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
Fast and accurate flow-insensitive points-to analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Putting pointer analysis to work
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast interprocedural class analysis
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Experiments with combined analysis for pointer aliasing
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Effective whole-program analysis in the presence of pointers
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Further empirical studies of test effectiveness
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reuse-driven interprocedural slicing
Proceedings of the 20th international conference on Software engineering
System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow
Proceedings of the 21st international conference on Software engineering
Analyzing exception flow in Java programs
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
A practical interprocedural data flow analysis algorithm
Communications of the ACM
Retargetable high-level alias analysis
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Selecting and Using Data for Integration Testing
IEEE Software
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing
IEEE Transactions on Software Engineering
More Experience with Data Flow Testing
IEEE Transactions on Software Engineering
Interprocedural Def-Use Associations for C Systems with Single Level Pointers
IEEE Transactions on Software Engineering
Complexity of Concrete Type-Inference in the Presence of Exceptions
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
Flow-Insensitive Interprocedural Alias Analysis in the Presence of Pointers
LCPC '94 Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing
The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
The Complexity of Type Analysis of Object Oriented Programs
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
A Logic-Based Approach to Data Flow Analysis Problem
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
Data-Flow-Based Virtual Function Resolution
SAS '96 Proceedings of the Third International Symposium on Static Analysis
The Effects of the Precision of Pointer Analysis
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
The program dependence graph in a software development environment
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Analysis of Programs with Exception-Handling Constructs
ICSM '98 Proceedings of the International Conference on Software Maintenance
Modular data-flow analysis of statically typed object-oriented programming languages
Modular data-flow analysis of statically typed object-oriented programming languages
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Exceptional situations and program reliability
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic documentation inference for exceptions
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Exception analysis and points-to analysis: better together
Proceedings of the eighteenth international symposium on Software testing and analysis
Contextual integration testing of classes
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Probabilistic points-to analysis for java
CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
Synthesizing API usage examples
Proceedings of the 34th International Conference on Software Engineering
Efficient and effective handling of exceptions in java points-to analysis
CC'13 Proceedings of the 22nd international conference on Compiler Construction
Tool for generating code metrics for C# source code using abstract syntax tree technique
ACM SIGSOFT Software Engineering Notes
A constraint-weaving approach to points-to analysis for AspectJ
Frontiers of Computer Science: Selected Publications from Chinese Universities
Hi-index | 0.00 |
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].