A rigorous approach to support the maintenance of large portable software
Jean-Marie Favré · 2002
Very often, portability of large software products is achieved via the empirical use of old tools like CPP, the preprocessor of the C language. Though powerful low level features like conditional compilation cause serious maintenance problems. There is a lack of adequate tools to support such activities. The paper presents our approach to this problem. We introduce APP, an abstract language semantically equivalent to CPP but based on traditional programming-in-the-small concepts. A rigorous description of the semantics of this language makes it possible to develop reliable reverse engineering tools.