ScalaCG

Is analyzing the Scala source code any different than analyzing the JVM bytecodes that the Scala compiler generates? In this work, we developed ScalaCG, a collection of low-cost call graph analyses that target the Scala source code and support various Scala features such as traits, abstract type members, closures, and path-dependent types. Using ScalaCG produces call graphs that are up to 19x more precise than using a bytecode-based approach in terms of call edges and reachable nodes.

[1, 2]

Related Publications

2015

  1. TOSEM
    Type-Based Call Graph Construction Algorithms for Scala
    Karim Ali, Marianna Rapoport, Ondřej Lhoták, Julian Dolby, and Frank Tip
    ACM Transactions on Software Engineering and Methodology, Nov 2015

2014

  1. ECOOP
    Constructing Call Graphs of Scala Programs
    Karim Ali, Marianna Rapoport, Ondřej Lhoták, Julian Dolby, and Frank Tip
    In European Conference on Object-Oriented Programming, Nov 2014