IncA: A DSL for the Definition of Incremental Program Analyses

Tamás Szabó, Sebastian Erdweg, Markus Voelter

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

24 Citations (Scopus)

Abstract

Program analyses support software developers, for example, through error detection, code-quality assurance, and by enabling compiler optimizations and refactorings. To provide real-time feedback to developers within IDEs, an analysis must run efficiently even if the analyzed code base is large.

To achieve this goal, we present a domain-specific language called IncA for the definition of efficient incremental program analyses that update their result as the program changes. IncA compiles analyses into graph patterns and relies on existing incremental matching algorithms. To scale IncA analyses to large programs, we describe optimizations that reduce caching and prune change propagation. Using IncA, we have developed incremental control flow and points-to analysis for C, well-formedness checks for DSLs, and 10 FindBugs checks for Java. Our evaluation demonstrates significant speedups for all analyses compared to their non-incremental counterparts.
Original languageEnglish
Title of host publicationASE 2016 Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering
EditorsD. Lo
Place of PublicationNew York
PublisherAssociation for Computing Machinery (ACM)
Pages320-331
Number of pages12
ISBN (Print)978-1-4503-3845-5
DOIs
Publication statusPublished - Sep 2016
EventASE 2016: 31st IEEE/ACM International Conference on Automated Software Engineering - Singapore, Singapore
Duration: 3 Sep 20167 Sep 2016
Conference number: 31

Conference

ConferenceASE 2016
CountrySingapore
CitySingapore
Period3/09/167/09/16

Keywords

  • Static Analysis
  • Incremental Computation
  • Domain-specific language
  • Language Workbench

Fingerprint Dive into the research topics of 'IncA: A DSL for the Definition of Incremental Program Analyses'. Together they form a unique fingerprint.

Cite this