Smart Compiling for Eiffel

Miguel M. Carmona, Miguel K. Mora e Tomás C. Alvarez

Contemporary programming environments for C++ introduce additional, extra-linguistic features, such as projects or make files, to organize the several interrelated program (compilation) units comprising an application. A conventional C++ compilation unit consists of two files: a header file and an implementation (source) file. However, current C++ compilers don't detect which modifications to one unit might require changes in other units; nor they try to avoid unnecessary recompilations. The pure OO language Eiffel uses a single file to hold the entire text of a class (i.e.,no .h file). Moreover, Eiffel does not require any extra-linguistic file to define a project (i.e. no "make" file is mandated by the language). This paper analyzes and explains an optimization strategy to avoid unnecessary recompilatons of classes comprising an Eiffel application.