Call Graph (CHA)

  • Call Graph Construction for OOPLs
    • Classic hierarchy analysis (CHA)
    • Pointer analysis (k-CFA)
  • Dispatch(c, m) = m’ if c contains non-abstract method m’ that has the same name and descriptor as m
    • else = Dispatch(c’, m), c’ is superclass of c
  • Resolve(a.foo())
    • virtual call: Dispatch self and subclass

Interprocedural Control-Flow Graph

  • ICFG: represents structure of the whole program
    • ICFG = CFGs + call & return edges
    • node transfer + edge transfer