J. Sametinger, S. Schiffer, Design and Implementation Aspects of an Experimental C++ Programming Environment, Software - Practice and Experience, Vol. 25, No. 2, pp. 111-128, February 1995.
DOI: 10.1002/spe.4380250202

A good programming language alone is not sufficient for economic software production. The programming environment has a significant influence on the productivity of software engineers. Providing a programmer with information about an object-oriented software system requires extracting information from the source code, e.g., class, method, and variable names. We use separate structure files for holding this information and take advantage of proven tools like make and the C preprocessor for keeping the structure files up to date and for processing software systems that heavily use macros.
In this paper we describe the concepts used for comfortable processing of C++ software systems, and discuss interesting design and implementation aspects, including structure files, the applied make mechanism, and the exploitation of the C preprocessor.

Keywords: Programming Environment, Design, Implementation, C++, UNIX, make, C preprocessor, Macros