A Call-Graph Comparison Framework for Dynamic Languages

Master Thesis

The goal of this thesis is to study challenges in constructing call graphs in dynamic programming languages such as Python and JavaScript and to implement a framework to study the soundness of call graphs for such languages.

Call graphs are foundational static analyses and a prerequisite for any interprocedural analysis. Constructing sound call graphs is hard for real-world programs due to challenging features of programming languages and ecosystems.

The thesis should study the challenges that dynamic languages pose to call-graph construction. Based upon this study, a benchmark of test cases for individual challenges shall be created and a framework implemented that uses these benchmarks to study the soundness of existing call-graph implementations in various tools. This framework could be incorporated in our existing JCG tool, that performs similar tasks for Java Bytecode programs.

Examiner: Prof. Dr.-Ing. Mira Mezini