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...

Teljes leírás

Elmentve itt :
Bibliográfiai részletek
Szerzők: Pengő Edit
Ságodi Zoltán
Kóbor Ervin
Testületi szerző: Conference of PhD students in computer science (11.) (2018) (Szeged)
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
Leíró adatok
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