Title :
CPP denotational semantics
Author :
Favre, Jean-Marie
Author_Institution :
Adele Team, Grenoble Univ., France
Abstract :
We show that CPP, the preprocessor of the C language, can be seen as a programming language in which directives are statements, parametrized macros are functions, files are procedures, directories are modules, and command lines are programs. The semantics of CPP can therefore be described using traditional techniques. We describe the semantics of CPP in a denotational style. By contrast with previous work, the full semantics is taken into account including nontrivial aspects such as recursive macros, stringification and concatenation.
Keywords :
C language; macros; program processors; programming language semantics; C language preprocessor; CPP; denotational semantics; parametrized macros; programming language; recursive macros; Computer languages; Conferences; Formal languages; Formal specifications; HTML; Java; Libraries;
Conference_Titel :
Source Code Analysis and Manipulation, 2003. Proceedings. Third IEEE International Workshop on
Print_ISBN :
0-7695-2005-7
DOI :
10.1109/SCAM.2003.1238028