Avoiding trickle‐down recompilation in the Mary2 implementation
- 1 December 1984
- journal article
- Published by Wiley in Software: Practice and Experience
- Vol. 14 (12) , 1149-1157
- https://doi.org/10.1002/spe.4380141206
Abstract
Programming languages which support separate but not independent compilation are prone to a problem called trickle‐down recompilation. These languages, which include Ada, Modula and others as well as Mary2,1 permit a compilation unit to refer at compile time to objects declared in another, imported, compilation unit. When the exporting compilation unit is recompiled for any reason, its exported interface may change, and so the importing compilation units which are the clients of that interface must be recompiled. These recompilations in turn force others, and so onMany recompilations are in fact innocuous, in that they may change the run‐time behaviour of the recompiled unit but do not alter the exported interface. This paper describes the implementation of that portion of the Mary2 language system which performs just those recompilations actually necessary and avoids redundant recompilations. The methods described are applicable to the implementation of any other language which enforces version control across compilations.Keywords
This publication has 1 reference indexed in Scilit:
- Hardware support for memory protectionACM SIGPLAN Notices, 1982