Smart Compiling for Eiffel.
Miguel Mateo Carmona, Miguel Katrib Mora, Tomás Couso Alvarez · Journal of Object-oriented Programming · 1998
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 recompilations of classes comprising an Eiffel application.