data of the rest is available in the online appendix. We
tried to select the most diverse inputs possible for the
analysis (e.g., libraries and executables as well). We
have shown that the outputs of the different call graph
creator tools may differ significantly. We have also
shown on Maven and ArgoUML the extent to which
the different factors affected the differences of the call
graphs. With this, we have practically emphasized the
parameters that can significantly determine the result-
ing call graphs.
ACKNOWLEDGEMENTS
Ministry of Human Capacities, Hungary grant 20391-
3/2018/FEKUSTRAT is acknowledged. The project
was supported by the European Union, co-fnanced
by the European Social Fund (EFOP-3.6.3-VEKOP-
16-2017-00002). This research was supported by the
EU-funded Hungarian national grant GINOP-2.3.2-
15-2016-00037 titled “Internet of Living Things”.
Thanks for Tam
´
as Aladics for the technical back-
ground work.
REFERENCES
Ali, K. and Lhot
´
ak, O. (2012). Application-only call
graph construction. In Proceedings of the 26th
European Conference on Object-Oriented Program-
ming, ECOOP’12, pages 688–712, Berlin, Heidel-
berg. Springer-Verlag.
Andersen, L. O. (1994). Program Analysis and Specializa-
tion for the C Programming Language. PhD thesis,
University of Copenhagen.
Antal, G., Heged
˝
us, P., T
´
oth, Z., Ferenc, R., and Gyim
´
othy,
T. (2018). Static JavaScript Call Graphs: a Compar-
ative Study. In Proceedings of the 18th IEEE Inter-
national Working Conference on Source Code Analy-
sis and Manipulation, SCAM 2018, pages 177–186.
IEEE.
Apache Commons (2019). Apache BCEL Home Page.
https://commons.apache.org/proper/commons-bcel.
[Online; accessed 2019].
Bacon, D. F. and Sweeney, P. F. (1996). Fast Static Anal-
ysis of C++ Virtual Function Calls. SIGPLAN Not.,
31(10):324–341.
Badenski, P. (2019). Call Hierarchy Printer GitHub Page.
https://github.com/pbadenski/call-hierarchy-printer.
[Online; accessed 2019].
CallGraphViewer (2019). Callgraph viewer home page.
https://marketplace.eclipse.org/content/callgraph-
viewer. [Online; accessed 2019].
Christodorescu, M. and Jha, S. (2003). Static analysis of ex-
ecutables to detect malicious patterns. In Proceedings
of the 12th Conference on USENIX Security Sympo-
sium - Volume 12, SSYM’03, pages 12–12, Berkeley,
CA, USA. USENIX Association.
Danny van Bruggen, Federico Tomassetti, Nicholas Smith,
Cruz Maximilien (2019). JavaParser - for processing
Java code Homepage.
https://javaparser.org/. [Online; accessed 2019].
Dean, J., Grove, D., and Chambers, C. (1995). Optimiza-
tion of Object-Oriented Programs Using Static Class
Hierarchy Analysis. In Tokoro, M. and Pareschi,
R., editors, ECOOP’95 — Object-Oriented Program-
ming, 9th European Conference,
˚
Aarhus, Denmark,
August 7–11, 1995, pages 77–101, Berlin, Heidelberg.
Springer Berlin Heidelberg.
DSE University of Szeged (2019). OpenStaticAnalyzer
GitHub Page.
https://github.com/sed-inf-u-szeged/
OpenStaticAnalyzer. [Online; accessed 2019].
Eclipse (2019). Eclipse home page.
www.eclipse.org/eclipse/. [Online; accessed 2019].
Eclipse JDT (2019). Eclipse jdt home page.
http://www.eclipse.org/jdt/. [Online; accessed 2019].
Eichinger, F., B
¨
ohm, K., and Huber, M. (2008). Min-
ing Edge-Weighted Call Graphs to Localise Software
Bugs. In Machine Learning and Knowledge Discov-
ery in Databases, pages 333–348, Berlin, Heidelberg.
Springer Berlin Heidelberg.
Feng, Y., Anand, S., Dillig, I., and Aiken, A. (2014).
Apposcopy: Semantics-based detection of android
malware through static analysis. In Proceedings of
the 22Nd ACM SIGSOFT International Symposium
on Foundations of Software Engineering, FSE 2014,
pages 576–587, New York, NY, USA. ACM.
Georgios Gousios (2019). Java Call Graph GitHub Page.
https://github.com/gousiosg/java-callgraph.
Grove, D. and Chambers, C. (2001). A framework for call
graph construction algorithms. ACM Trans. Program.
Lang. Syst., 23(6):685–746.
Grove, D., DeFouw, G., Dean, J., and Chambers, C.
(1997). Call Graph Construction in Object-oriented
Languages. In Proceedings of the 12th ACM SIG-
PLAN Conference on Object-oriented Programming,
Systems, Languages, and Applications, OOPSLA ’97,
pages 108–124, New York, NY, USA. ACM.
Hoogendorp, H. (2010). Extraction and visual exploration
of call graphs for Large Software Systems. Master’s
thesis, University of Groningen.
Lhot
´
ak, O. (2007). Comparing call graphs. In ACM SIG-
PLAN/SIGSOFT Workshop on Program Analysis for
Software Tools and Engineering, pages 37–42.
Lhot
´
ak, O. and Hendren, L. (2006). Context-Sensitive
Points-to Analysis: Is It Worth It? In Mycroft, A. and
Zeller, A., editors, Compiler Construction, pages 47–
64, Berlin, Heidelberg. Springer Berlin Heidelberg.
Liu, C., Yan, X., Yu, H., Han, J., and Yu, P. S. (2005). Min-
ing Behavior Graphs for “Backtrace” of Noncrashing
Bugs. In SDM.
Murphy, G. C., Notkin, D., Griswold, W. G., and Lan,
E. S. (1998). An Empirical Study of Static Call
Systematic Comparison of Six Open-source Java Call Graph Construction Tools
127