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
Link To Document :
بازگشت