• DocumentCode
    1425693
  • Title

    An extensible system for source code analysis

  • Author

    Canfora, Gerardo ; Cimitile, Aniello ; De Carlini, Ugo ; De Lucia, Andrea

  • Author_Institution
    Fac. of Eng., Sannio Univ., Piazza Roma, Italy
  • Volume
    24
  • Issue
    9
  • fYear
    1998
  • fDate
    9/1/1998 12:00:00 AM
  • Firstpage
    721
  • Lastpage
    740
  • 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)-l, 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
  • Keywords
    application generators; formal specification; reverse engineering; software maintenance; specification languages; user interfaces; C programs; algebraic expression; algebraic representation; application generator; code analyzers; database; declarative language; domain-oriented language; extensible system; foreign language interface; programming language; reverse engineering; software maintenance; source code analysis; specification; user interface; Computer languages; Data mining; Databases; Information analysis; Performance analysis; Programming profession; Reverse engineering; Software maintenance; Software systems; Testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.713328
  • Filename
    713328