## Extending and Evaluating Flow-insensitive and Context-insensitive Points-to Analyses for Java (2001)

### Cached

### Download Links

- [www.cc.gatech.edu]
- [www.cc.gatech.edu]
- [www.cc.gatech.edu]
- [pleuma.cc.gatech.edu]
- [pleuma.cc.gatech.edu]
- CiteULike

### Other Repositories/Bibliography

Venue: | In Workshop on Program Analysis for Software Tools and Engineering |

Citations: | 43 - 5 self |

### BibTeX

@INPROCEEDINGS{Liang01extendingand,

author = {Donglin Liang and Maikel Pennings and Mary Jean Harrold},

title = {Extending and Evaluating Flow-insensitive and Context-insensitive Points-to Analyses for Java},

booktitle = {In Workshop on Program Analysis for Software Tools and Engineering},

year = {2001},

pages = {73--79}

}

### Years of Citing Articles

### OpenURL

### Abstract

This paper presents extensions to Steensgaard's and Andersen's algorithms to handle Java features. Without careful consideration, the handling of these features may affect the correctness, precision, and efficiency of these algorithms. The paper also presents the results of empirical studies. These studies compare the precision and efficiency of these two algorithms and evaluate the effectiveness of handling Java features using alternative approaches. The studies also evaluate the impact of the points-to information provided by these two algorithms on client analyses that use the information.

### Citations

557 | Program Analysis and Specialization for the C Programming Language
- Andersen
- 1994
(Show Context)
Citation Context ...eness of these points-to analysis algorithms for computing reference information for Java programs, we studied two flow-insensitive, context-insensitive algorithms---Steensgaard's [18] and Andersen's =-=[2]-=-. Steensgaard 's algorithm has almost-linear time complexity and computes much more precise information than the worstcase approximation. Andersen's algorithm, despite its cubic worst-case time comple... |

544 | Points-to Analysis in Almost Linear Time
- Steensgaard
- 1996
(Show Context)
Citation Context ...evaluate the e#ectiveness of these points-to analysis algorithms for computing reference information for Java programs, we studied two flow-insensitive, context-insensitive algorithms---Steensgaard's =-=[18]-=- and Andersen's [2]. Steensgaard 's algorithm has almost-linear time complexity and computes much more precise information than the worstcase approximation. Andersen's algorithm, despite its cubic wor... |

398 | Context-Sensitive Interprocedural Points-to Analysis
- Emami, Ghiya, et al.
- 1994
(Show Context)
Citation Context ...way that virtual method calls are invoked through variables). During 1 Similar approaches have been used to resolve indirect calls through function pointers in points-to analysis of C programs (e.g., =-=[10, 11]-=-). 1 class A { (b.1) this2 s1 s2 this1 h4 * * * * * * h10 h11 p p (c.1) 2 int[] p; 3 public A() { 4 this1.p=new int[2]; 5 } 6 public void set(int v) { 7 this2.p[0]=v; 8 } 9 public static void main(Str... |

340 | Optimization of object-oriented programs using static class hierarchy analysis
- Dean, Grove, et al.
- 1995
(Show Context)
Citation Context ...for handling virtual method calls in a points-to analysis. The first approach computes the set of invokable methods at each virtual method-call using algorithms such as class-hierarchy analysis (CHA) =-=[8]-=- or rapid type analysis (RTA) [3]. This approach is simple and requires minor modification to the points-to analysis. The second approach starts the analysis from main() and discovers, during the anal... |

275 | Escape analysis for Java
- Choi, Gupta, et al.
- 1999
(Show Context)
Citation Context ...f the same class, using information provided by pointer analysis may compute more precise type information than using a type inference algorithm. Recently, several escape analysis algorithms for Java =-=[4, 5, 6, 22]-=- have been developed. Our work o#ers another alternative for computing escape information. Our empirical studies show that this alternative may be e#cient and e#ective. 5. CONCLUSION This paper discus... |

254 | Fast static analysis of C++ virtual function calls
- Bacon, Sweeney
- 1996
(Show Context)
Citation Context ... in a points-to analysis. The first approach computes the set of invokable methods at each virtual method-call using algorithms such as class-hierarchy analysis (CHA) [8] or rapid type analysis (RTA) =-=[3]-=-. This approach is simple and requires minor modification to the points-to analysis. The second approach starts the analysis from main() and discovers, during the analysis (on the fly), the targets of... |

243 | Compositional pointer and escape analysis for Java programs
- Whaley, Rinard
- 1999
(Show Context)
Citation Context ...f the same class, using information provided by pointer analysis may compute more precise type information than using a type inference algorithm. Recently, several escape analysis algorithms for Java =-=[4, 5, 6, 22]-=- have been developed. Our work o#ers another alternative for computing escape information. Our empirical studies show that this alternative may be e#cient and e#ective. 5. CONCLUSION This paper discus... |

226 | Schwartzbach “Object-oriented type inference” in
- Palsberg, MI
- 1991
(Show Context)
Citation Context ...o set for this. This approach may help Steensgaard's algorithm to compute more precise information than Streckenbach and Snelting's approach. Various flow-insensitive type inference algorithms (e.g., =-=[1, 3, 9, 14, 20, 21]-=-) have been developed to determine the types of the objects that may be pointed to by a pointer in an object-oriented program. Such type information can be used for resolving virtual method calls. Bec... |

204 | Unification-Based Pointer Analysis with Directional Assignments
- Das
- 2000
(Show Context)
Citation Context ...references to arrays, collections, and maps are multi-level), these algorithms may be implemented, without losing much precision, using an efficient approach similar to the one presented in Reference =-=[7]-=-. Our future work will evaluate such an optimization. The lack of di#erence between the information computed by A-I-* and that computed by A-C-* can be interpreted in two ways: (1) encapsulation prese... |

130 | Scalable propagation-based call graph construction algorithms
- Tip, Palsberg
- 2000
(Show Context)
Citation Context ...o set for this. This approach may help Steensgaard's algorithm to compute more precise information than Streckenbach and Snelting's approach. Various flow-insensitive type inference algorithms (e.g., =-=[1, 3, 9, 14, 20, 21]-=-) have been developed to determine the types of the objects that may be pointed to by a pointer in an object-oriented program. Such type information can be used for resolving virtual method calls. Bec... |

123 | Practical virtual method call resolution for Java
- Sundaresan, Hendren, et al.
(Show Context)
Citation Context ...; or (2) m calls another method m1 through a direct method call---a call in the format of m1 () or this.m1()---and the points-to set of this is needed in m1 or the points-to analysis will 2 Reference =-=[20]-=- uses a similar approach to handle field accesses. 3 The points-to set for this in method m can be computed, after the analysis, by collecting the receiver instances at each call to m. discover the ta... |

121 | Removing unnecessary synchronization in Java
- Bogda, Hölzle
- 1999
(Show Context)
Citation Context ...f the same class, using information provided by pointer analysis may compute more precise type information than using a type inference algorithm. Recently, several escape analysis algorithms for Java =-=[4, 5, 6, 22]-=- have been developed. Our work o#ers another alternative for computing escape information. Our empirical studies show that this alternative may be e#cient and e#ective. 5. CONCLUSION This paper discus... |

106 | Interprocedural pointer alias analysis
- Hind, Burke, et al.
- 1999
(Show Context)
Citation Context ...way that virtual method calls are invoked through variables). During 1 Similar approaches have been used to resolve indirect calls through function pointers in points-to analysis of C programs (e.g., =-=[10, 11]-=-). 1 class A { (b.1) this2 s1 s2 this1 h4 * * * * * * h10 h11 p p (c.1) 2 int[] p; 3 public A() { 4 this1.p=new int[2]; 5 } 6 public void set(int v) { 7 this2.p[0]=v; 8 } 9 public static void main(Str... |

96 | Escape analysis for object oriented languages. Application to JavaTM
- Blanchet
- 1999
(Show Context)
Citation Context |

90 | Efficient Points-to Analysis for Whole-program Analysis,” in ESEC/FSE-7: Proceedings of the 7th European software engineering conference held jointly with
- Liang, Harrold
- 1999
(Show Context)
Citation Context ...t 2001 ACM 1-58113-413-4/01/0006 ...$5.00. show that Andersen's algorithm may compute information that is close in precision to that computed by expensive flow-sensitive, context-sensitive algorithms =-=[12, 13]-=-. This paper discusses extensions to Steensgaard's and Andersen 's algorithms to handle important Java features. Our extensions account for the common ways in which Java programs are written and attem... |

83 | Which pointer analysis should I use
- Hind, Pioli
- 2000
(Show Context)
Citation Context ...t 2001 ACM 1-58113-413-4/01/0006 ...$5.00. show that Andersen's algorithm may compute information that is close in precision to that computed by expensive flow-sensitive, context-sensitive algorithms =-=[12, 13]-=-. This paper discusses extensions to Steensgaard's and Andersen 's algorithms to handle important Java features. Our extensions account for the common ways in which Java programs are written and attem... |

66 | Fast Interprocedural Class Analysis
- DeFouw, Grove, et al.
- 1997
(Show Context)
Citation Context ...o set for this. This approach may help Steensgaard's algorithm to compute more precise information than Streckenbach and Snelting's approach. Various flow-insensitive type inference algorithms (e.g., =-=[1, 3, 9, 14, 20, 21]-=-) have been developed to determine the types of the objects that may be pointed to by a pointer in an object-oriented program. Such type information can be used for resolving virtual method calls. Bec... |

56 | Off-Line Variable Substitution for Scaling Points-To Analysis
- Rountev, Chandra
- 2000
(Show Context)
Citation Context ...s much more precise information than the worst-case approximation. Andersen’s algorithm, despite its cubic worst-case time complexity, can compute pointer information efficiently for large C programs =-=[7]-=-. In addition, studies show that Andersen’s ∗ Supported by grants to Georgia Tech from Boeing Aerospace Corporation, by NSF awards CCR-9988294, CCR-0096321, and EIA0196145, and by the State of Georgia... |

52 |
The cartesian product algorithm
- Agesen
- 1995
(Show Context)
Citation Context |

36 | Analysis and Testing of Programs with Exception-Handling Constructs - Sinha, Harrold - 2000 |

21 | Pointsto analysis for Java based on annotated constraints
- Rountev, Milanova, et al.
- 2001
(Show Context)
Citation Context ...sions account for the common ways in which Java programs are written and attempt to improve the precision and e#ciency of these two algorithms in analyzing such programs. Compared to other approaches =-=[16, 19]-=- that extend Steensgaard's or Andersen's algorithms for Java, our approaches for handling this, collections, and maps can be more precise, and our approaches for handling fields can be more e#cient. T... |

21 | Points-To for Java: A General Framework and an Empirical Comparison,” technical report
- Streckenbach, Snelting
- 2000
(Show Context)
Citation Context ...sions account for the common ways in which Java programs are written and attempt to improve the precision and e#ciency of these two algorithms in analyzing such programs. Compared to other approaches =-=[16, 19]-=- that extend Steensgaard's or Andersen's algorithms for Java, our approaches for handling this, collections, and maps can be more precise, and our approaches for handling fields can be more e#cient. T... |

17 |
O-line variable substitution for scaling points-to analysis
- Rountev, Chandra
- 2000
(Show Context)
Citation Context ...utes much more precise information than the worstcase approximation. Andersen's algorithm, despite its cubic worst-case time complexity, can e#ciently compute pointer information for large C programs =-=[15]-=-. In addition, studies Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for p... |