Who are you not gonna call? a definitive comparison of Java static call graph creator tools /
Call graphs are fundamental for advanced, interprocedural control flow and data flow analysis tasks. In dynamic languages like Java, which allows polymorphism and reflection constructing a static call graph can be complicated. A missing or imprecisely connected edge might misguide the following algo...
Elmentve itt :
Szerzők: | |
---|---|
Testületi szerző: | |
Dokumentumtípus: | Könyv része |
Megjelent: |
2018
|
Sorozat: | Conference of PhD Students in Computer Science
11 |
Kulcsszavak: | Java - programnyelv, Számítástechnika, Programozás |
Online Access: | http://acta.bibl.u-szeged.hu/61767 |
Tartalmi kivonat: | Call graphs are fundamental for advanced, interprocedural control flow and data flow analysis tasks. In dynamic languages like Java, which allows polymorphism and reflection constructing a static call graph can be complicated. A missing or imprecisely connected edge might misguide the following algorithms causing errors in the overall analysis. In this paper, we have collected six static analyzer tools for Java and performed a qualitative comparison on the call graph they generate. As part of the comparison, we introduced a method for pairing different notations of the same functions. We evaluated the collected tools on three open-source Java projects and on a small example containing most of the relevant Java language features. The results revealed several language structures that were handled differently by the static analyzers, which led to a difference in the created call graphs as well. |
---|---|
Terjedelem/Fizikai jellemzők: | 68-71 |