• DocumentCode
    3356227
  • Title

    A system for generating reverse engineering tools

  • Author

    Canfora, G. ; De Lucia, A. ; Di Lucca, G.A.

  • Author_Institution
    Dept. of Ingegneria dell´´Inf. ed Ingegneria Elettrica, Salerno Univ., Italy
  • fYear
    1997
  • fDate
    14-18 Jul 1997
  • Firstpage
    34
  • Lastpage
    44
  • Abstract
    Most current reverse engineering techniques start with an analysis of the system´s source code to derive structural information, based on compiler technology. As a consequence of the maturity of the field, several formal program models exist that have allowed the automatic generation of language processing front-ends. However, the software engineer has to code the data structures that implement the program model and the algorithms that implement the desired analysis. Thus, while the domain of code analysis is well understood, economic convenience very often leads to rigid code analysers that perform a fixed set of analyses and produce standard reports that users can only customise marginally. We have implemented a system for developing code analysers that uses a unique database to store both a no-loss fine-grained intermediate representation and the analysis results. The analysers are automatically generated from a very high-level specification of the desired analyses expressed in a domain-oriented language. We use an algebraic representation, called F(p), as the user-visible intermediate representation. Analysers are specified in a logic-based language, called F(p)-l, which allows the specification of an analysis in the form of a traversal of an algebraic expression, with accesses to, and stores of, the database information that the algebraic expression indexes. A foreign-language interface allows the analysers to be embedded into C programs to facilitate interoperation with other tools
  • Keywords
    algebraic specification; application generators; application program interfaces; computer aided software engineering; open systems; reverse engineering; software tools; specification languages; C programs; F(p) algebraic representation; F(p)-l logic-based specification language; algebraic expression indexes; algebraic expression traversal; code analysers; code analysis; data structures; database; domain-oriented language; economic convenience; foreign-language interface; formal program models; interoperability; language processing front-end; no-loss fine-grained intermediate representation; program model; reverse engineering tool generating system; software engineering; very high-level specification; Algorithm design and analysis; Code standards; Data engineering; Data structures; Databases; Indexes; Information analysis; Performance analysis; Reverse engineering; Software algorithms;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Technology and Engineering Practice, 1997. Proceedings., Eighth IEEE International Workshop on [incorporating Computer Aided Software Engineering]
  • Conference_Location
    London
  • Print_ISBN
    0-8186-7840-2
  • Type

    conf

  • DOI
    10.1109/STEP.1997.615462
  • Filename
    615462