DocumentCode :
827370
Title :
Global analysis and transformations in preprocessed languages
Author :
Spinellis, Diomidis
Author_Institution :
Dept. of Manage. Sci. & Technol., Athens Univ. of Econ. & Bus., Greece
Volume :
29
Issue :
11
fYear :
2003
Firstpage :
1019
Lastpage :
1030
Abstract :
Tool support for refactoring code written in mainstream languages such as C and C++ is currently lacking due to the complexity introduced by the mandatory preprocessing phase that forms part of the C/C++ compilation cycle. The definition and use of macros complicates the notions of scope and of identifier boundaries. The concept of token equivalence classes can be used to bridge the gap between the language proper semantic analysis and the non-preprocessed source code. The CScout toolchest uses the developed theory to analyze large interdependent program families. A Web-based interactive front end allows the precise realization of rename and remove refactorings on the original C source code. In addition, CScout can convert programs into a portable obfuscated format or store a complete and accurate representation of the code and its identifiers in a relational database.
Keywords :
C++ language; equivalence classes; relational databases; reverse engineering; software engineering; CScout toolchest; Web-based interactive front end; global analysis; macros; nonpreprocessed source code; preprocessed languages; preprocessor; refactoring code; relational database; reverse engineering; semantic analysis; token equivalence classes; tool support; Automation; Bridges; Design methodology; Encapsulation; Humans; Performance analysis; Programming profession; Relational databases; Reverse engineering; Tagging;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2003.1245303
Filename :
1245303
Link To Document :
بازگشت