An Extensible System for Source Code Analysis

  • Authors:
  • Gerardo Canfora;Aniello Cimitile;Ugo de Carlini;Andrea de Lucia

  • Affiliations:
  • Univ. of Sannio, Benevento, Italy;Univ. of Sannio, Benevento, Italy;Univ. of Naples, Naples, Italy;Univ. of Sannio, Benevento, Italy

  • Venue:
  • IEEE Transactions on Software Engineering
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Constructing code analyzers may be costly and error prone if inadequate technologies and tools are used. If they are written in a conventional programming language, for instance, several thousand lines of code may be required even for relatively simple analyses. One way of facilitating the development of code analyzers is to define a very high-level domain-oriented language and implement an application generator that creates the analyzers from the specification of the analyses they are intended to perform. This paper presents a system for developing code analyzers that uses a database to store both a no-loss fine-grained intermediate representation and the results of the analyses. The system uses an algebraic representation, called F(p), as the user-visible intermediate representation. Analyzers are specified in a declarative language, called $F(p)-\ell,$ which enables an analysis to be specified in the form of a traversal of an algebraic expression, with access to, and storage of, the database information the algebraic expression indices. A foreign language interface allows the analyzers to be embedded in C programs. This is useful for implementing the user interface of an analyzer, for example, or to facilitate interoperation of the generated analyzers with pre-existing tools. The paper evaluates the strengths and limitations of the proposed system, and compares it to other related approaches.