A Precise Framework for Source-Level Control-Flow Analysis

Research output: Chapter in Book/Report/Conference proceedingPaper in conference proceedingpeer-review

Abstract

This paper presents INTRACFG, a declarative and language-independent framework for constructing precise intraprocedural control-flow graphs (CFGs) based on the reference attribute grammar system JastAdd. Unlike most other frameworks, which build CFGs on an Intermediate Representation level, e.g., bytecode, our approach superimposes the CFGs on the Abstract Syntax Tree, enabling accurate client analysis. Moreover, INTRACFG overcomes expressivity limitations of an earlier RAG-based framework, allowing the construction of AST-Unrestricted CFGs: CFGs whose shape is not confined to the AST structure. We evaluate the expressivity of INTRACFG with INTRAJ, an application of INTRACFG to Java 7, by comparing two data flow analyses built on top of INTRAJ against tools from academia and from the industry. The results demonstrate that INTRAJ is effective at building precise and efficient CFGs and enables analyses with competitive performance.

Original languageEnglish
Title of host publicationProceedings - IEEE 21st International Working Conference on Source Code Analysis and Manipulation, SCAM 2021
PublisherIEEE - Institute of Electrical and Electronics Engineers Inc.
Pages1-11
Number of pages11
ISBN (Electronic)978-1-6654-4897-0
ISBN (Print)978-1-6654-4898-7
DOIs
Publication statusPublished - 2021
EventIEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM) - Luxembourg, Luxembourg
Duration: 2021 Sept 272021 Dec 28

Conference

ConferenceIEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM)
Country/TerritoryLuxembourg
CityLuxembourg
Period2021/09/272021/12/28

Subject classification (UKÄ)

  • Computer Science

Free keywords

  • Attributed Grammars
  • Control flow
  • Dataflow
  • Declarative
  • Static Analysis

Fingerprint

Dive into the research topics of 'A Precise Framework for Source-Level Control-Flow Analysis'. Together they form a unique fingerprint.

Cite this