Towards a Standard Schema for C/C++


Developing a standard schema at the abstract syntax tree (AST) level for C/C++ to be used by reverse engineering and reengineering tools is a complex and difficult problem. In this paper we present a catalogue of issues that need to be considered in order to design a solution. Three categories of issues are discussed. Lexical structure is the first category and pertains to characteristics of the source code, such as spaces and comments. The second category, syntax, includes both the mundane and hard problems in the C++ programming language. The final category is semantics and covers aspects such as naming and reference resolution. Example solutions to these challenges are provided from the Datrix schema from Bell Canada and the Columbus schema from University of Szeged. The paper concludes with a discussion of lessons learnt and plans for future work on a C/C++AST standard schema.

Proceedings of the 8th Working Conference on Reverse Engineering (WCRE 2001), Stuttgart, Germany, Pages 49–58


    author    = {Ferenc, Rudolf and Sim, Susan Elliott and Holt, Richard C and Koschke, Rainer and Gyim\'othy, Tibor},
    title     = {Towards a Standard Schema for {C/C++}},
    booktitle = {Proceedings of the 8th Working Conference on Reverse Engineering (WCRE 2001)},
    year      = {2001},
    pages     = {49--58},
    address   = {Stuttgart, Germany},
    month     = oct,
    publisher = {IEEE Computer Society},
    doi       = {10.1109/WCRE.2001.957809},
    keywords  = {Standard exchange format, C/C++ schema, GXL, parser, extractor, front end, AST, reverse engineering, Datrix, Columbus},
    url       = {},