We introduce ACER, an AST-based call graph generator framework. ACER leverages tree-sitter to interface with any language. We opted to focus on generators that operate on abstract syntax trees (ASTs) due to their speed and simplicitly in certain scenarios; however, a fully quantified intermediate representation usually provides far better information at the cost of requiring compilation. To evaluate our framework, we created two context-insensitive Java generators and compared them to existing open-source Java generators.
翻译:我们提出ACER,一种基于抽象语法树(AST)的调用图生成框架。ACER利用tree-sitter实现与任意编程语言的接口对接。鉴于抽象语法树操作在某些场景下具有速度快和简洁性的优势,我们着重研究了基于AST的生成器;然而,完全量化的中间表示通常能提供更优的信息,但代价是需要进行编译。为评估本框架,我们开发了两个上下文无关的Java生成器,并与现有开源Java生成器进行了比较。