{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,22]],"date-time":"2023-10-22T12:42:50Z","timestamp":1697978570058},"reference-count":22,"publisher":"Wiley","issue":"8","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6299,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1989,8]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper presents simple techniques that can be used to automate recompilation and avoid unnecessary recompilation in modular programming languages. The basic technique generates a Makefile that reflects the dependencies among modules. This technique is demonstrated for programs written in SR, although it can easily be adapted to other modular languages. The recompilation problem for SR programs is complicated by the flexible way components can be placed in source files and by how an SR module's specification and implementation can be combined. A small modification to the basic technique reduces the amount of unnecessary compilation. This \u2018semi\u2010smart\u2019 approach is worth the small extra effort. The techniques described in this paper should be considered as an inexpensive, yet reasonably effective, alternative to smart recompilation. These techniques are especially applicable when the language's compiler cannot easily be modified.<\/jats:p>","DOI":"10.1002\/spe.4380190805","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T05:08:03Z","timestamp":1163826483000},"page":"757-773","source":"Crossref","is-referenced-by-count":1,"title":["A simple technique for automatic recompilation in modular programming languages"],"prefix":"10.1002","volume":"19","author":[{"given":"Ronald A.","family":"Olsson","sequence":"first","affiliation":[]},{"given":"Gregory R.","family":"Whitehead","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-96717-7"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/954666.971189"},{"key":"e_1_2_1_4_2","unstructured":"J. G.Mitchell W.MayburyandR.Sweet \u2018Mesa language manual (version 5.0)\u2019 Rep. CSL\u201079\u20103 Xerox Palo Alto Research Center April1979."},{"key":"e_1_2_1_5_2","unstructured":"U.S. Department of Defense Reference Manual for the Ada Programming Language ANSI\/MIL\u2010STD\u20101815A 1983."},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/42192.42324"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380090402"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380140607"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380141206"},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380160202"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/5956.5959"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010230"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/12276.13317"},{"issue":"1","key":"e_1_2_1_14_2","first-page":"180","article-title":"Efficient recompilation of module interfaces in a software development environment","volume":"22","author":"Hood R.","year":"1986","journal-title":"ACM SIGPLAN Notices"},{"key":"e_1_2_1_15_2","volume-title":"Revised report on the SR programming language","author":"Andrews G. R.","year":"1987"},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/502949.502905"},{"key":"e_1_2_1_17_2","volume-title":"UNIX Ada Programming","author":"Gehani N.","year":"1987"},{"key":"e_1_2_1_18_2","first-page":"197","volume-title":"Advanced Programming Environments, Lecture Notes in Computer Science 244","author":"Borison E.","year":"1986"},{"key":"e_1_2_1_19_2","unstructured":"A.Hume \u2018Mk: a successor to make\u2019 Proc. USENIX Summer 1987 pp.445\u2013457."},{"issue":"9","key":"e_1_2_1_20_2","doi-asserted-by":"crossref","first-page":"809","DOI":"10.1002\/j.1097-024X.1986.tb00012.x","article-title":"Side\u2010effects in automatic file updating","volume":"16","author":"Miller W.","year":"1986","journal-title":"Software\u2014Practice and Experience"},{"key":"e_1_2_1_21_2","volume-title":"The Design and Analysis of Computer Algorithms","author":"Aho A. V.","year":"1974"},{"key":"e_1_2_1_22_2","unstructured":"T. D. M.Purdin \u2018Enhancing file availability in distributed systems (the Saguaro file system)\u2019 Ph.D. Dissertation Department of Computer Science The University of Arizona 1987."},{"key":"e_1_2_1_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.232839"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380190805","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380190805","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T23:46:02Z","timestamp":1697931962000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380190805"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1989,8]]},"references-count":22,"journal-issue":{"issue":"8","published-print":{"date-parts":[[1989,8]]}},"alternative-id":["10.1002\/spe.4380190805"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380190805","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1989,8]]}}}