{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,22]],"date-time":"2023-10-22T00:25:31Z","timestamp":1697934331939},"reference-count":2,"publisher":"Wiley","issue":"12","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":8003,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1984,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Programming languages which support separate but not independent compilation are prone to a problem called trickle\u2010down recompilation. These languages, which include Ada, Modula and others as well as Mary2,<jats:sup>1<\/jats:sup> 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 on<\/jats:p><jats:p>Many recompilations are in fact innocuous, in that they may change the run\u2010time 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.<\/jats:p>","DOI":"10.1002\/spe.4380141206","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T03:16:24Z","timestamp":1163819784000},"page":"1149-1157","source":"Crossref","is-referenced-by-count":6,"title":["Avoiding trickle\u2010down recompilation in the Mary2 implementation"],"prefix":"10.1002","volume":"14","author":[{"given":"Mark","family":"Rain","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","unstructured":"M.Rainet al. Mary2 Reference Manual Penobscot Research Center Deer Isle Maine 1983."},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/960120.801834"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380141206","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380141206","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,19]],"date-time":"2023-10-19T21:49:15Z","timestamp":1697752155000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380141206"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1984,12]]},"references-count":2,"journal-issue":{"issue":"12","published-print":{"date-parts":[[1984,12]]}},"alternative-id":["10.1002\/spe.4380141206"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380141206","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1984,12]]}}}