Columbus Schema for C/C++ preprocessing

László Vidács, Árpád Beszédes, Rudolf Ferenc

Research output: Contribution to journalConference article

24 Citations (Scopus)


File inclusion, conditional compilation and macro processing has made the C/C++ preprocessor a powerful tool for programmers. However, program code with lots of directives often causes difficulties in program understanding and maintenance. The main source of the problem is the difference between the code that the programmer sees and the preprocessed code that the compiler gets. To aid program comprehension we designed a C/C++ preprocessor schema (supplementing the Columbus Schema for C++) and implemented a preprocessor which produces both preprocessed files and schema instances. The instances of the schema may be used to model: (1) preprocessor constructs in the original source code, (2) the preprocessed compilation unit, and (3) the transformations made by the preprocessor.

Original languageEnglish
Pages (from-to)75-84
Number of pages10
JournalProceedings of the European Conference on Software Maintenance and Reengineering, CSMR
Publication statusPublished - Jul 19 2004
EventProceedings of the European Conference on Software Maintainance and Reengineering, CSMR - Tampere, Finland
Duration: Mar 24 2004Mar 26 2004



  • C
  • C++
  • Columbus
  • Preprocessor
  • Program understanding
  • Schema
  • Tool interoperability

ASJC Scopus subject areas

  • Software

Cite this