• 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