{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,11]],"date-time":"2026-03-11T01:32:35Z","timestamp":1773192755484,"version":"3.50.1"},"reference-count":13,"publisher":"Wiley","issue":"6","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5630,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1991,6]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper describes a language called Nimble that allows designers to declare how the actual parameters in a procedure call are to be transformed at run time. Normally, programmers must edit an application's source in order to adapt it for reuse in some new context where the interfaces fail to match exactly (e.g. the parameters may appear in a different order, data types may not exactly match, and some data may need to be either initialized or masked out when the reusable module is integrated within a new application.) But Nimble allows programmers to adapt the interfaces of existing software without having to operate on the source manually. As a result, existing software may be easily reused in a broader range of applications, and software libraries do not need to store many variants of a component that differ only in how the interfaces are used. Nimble has been implemented on a variety of Unix hosts, and is part of a broader reuse project at the University of Maryland. Our current system is suitable for use either in conjunction with existing module interconnection languages, or stand\u2010alone with C, Pascal and Ada source programs.<\/jats:p>","DOI":"10.1002\/spe.4380210602","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T05:36:56Z","timestamp":1163828216000},"page":"539-556","source":"Crossref","is-referenced-by-count":47,"title":["Module reuse by interface adaptation"],"prefix":"10.1002","volume":"21","author":[{"given":"James M.","family":"Purtilo","sequence":"first","affiliation":[]},{"given":"Joanne M.","family":"Atlee","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"crossref","unstructured":"V.Basili Software development: a paradigm for the future Proc. COMPSAC 89 September1989 pp.471\u2013485.","DOI":"10.1109\/CMPSAC.1989.65127"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/MEX.1986.4307005"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312936"},{"key":"e_1_2_1_5_2","unstructured":"B.Joo Adaptation and composition of program components.Doctoral Dissertation University of Maryland (1990)."},{"key":"e_1_2_1_6_2","unstructured":"J.Purtilo The Polylith software bus University of Maryland Technical Report TR\u20102469 1990."},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/76380.76387"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/361020.361023"},{"key":"e_1_2_1_9_2","unstructured":"L.McMahon SED\u2014a non\u2010interactive text editor AT&T Bell Laboratories 1978."},{"key":"e_1_2_1_10_2","unstructured":"A.Aho B.KerniganandP.Weinberger Awk \u2014 a pattern scanning and processing language AT&T Bell Laboratories second edition 1978."},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"D.Perry The Inscape environment Proc. 11th International Conference on Software Engineering May1989 pp.2\u201312.","DOI":"10.1145\/74587.74588"},{"key":"e_1_2_1_12_2","unstructured":"M.Maybee Q: a multi\u2010lingual interprocess communications system for software environment implementation University of Colorado Technical Report CU\u2010CS\u2010476\u201390 1990."},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","unstructured":"J.Wileden A.Wolf W.RosenblattandP.Tarr Specification level interoperability Proc. 12th International Conference on Software Engineering March1990 pp.74\u201385.","DOI":"10.1109\/ICSE.1990.63605"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.233497"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380210602","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380210602","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,12]],"date-time":"2025-01-12T00:05:44Z","timestamp":1736640344000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380210602"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1991,6]]},"references-count":13,"journal-issue":{"issue":"6","published-print":{"date-parts":[[1991,6]]}},"alternative-id":["10.1002\/spe.4380210602"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380210602","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1991,6]]}}}