{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,17]],"date-time":"2025-12-17T08:35:32Z","timestamp":1765960532631},"reference-count":15,"publisher":"Wiley","issue":"4","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5691,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1991,4]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper describes a new approach to dynamic link\/unlink editing. The basis of this approach is a library of link editing functions that can add compiled object code to <jats:italic>or remove<\/jats:italic> such code from a process any time during its execution. Loading modules, searching libraries, resolving external references, and allocating storage for global and static data structures are all performed at run time. This approach provides the efficiency of native machine code execution along with the flexibility to modify a program during its execution, thereby making many new applications possible. This paper also describes three sample applications of these dynamic link editing functions: program customization, incremental program development, and support for debugging and testing. A prototype of this approach is implemented under UNIX as a library package called <jats:italic>dld<\/jats:italic> for the C programming language and is available for VAX, Sun 3 and SPARCstation machines.<\/jats:p>","DOI":"10.1002\/spe.4380210404","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T18:36:11Z","timestamp":1163788571000},"page":"375-390","source":"Crossref","is-referenced-by-count":28,"title":["An approach to genuine dynamic linking"],"prefix":"10.1002","volume":"21","author":[{"given":"W. Wilson","family":"Ho","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ronald A.","family":"Olsson","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"System Software: An Introduction to System Programming","author":"Beck L. L.","year":"1985"},{"key":"e_1_2_1_3_2","unstructured":"R. A.Gingell M.Lee X. T.DangandM. S.Weeks Shared libraries in SunOS USENIX Conference Proceedings USENIX Pheonix AZ Summer1987 pp.131\u2013145."},{"key":"e_1_2_1_4_2","unstructured":"M.Sabatella Issues in shared libraries design USENIX Conference Proceedings USENIX Anaheim CA June1990 pp.11\u201323."},{"key":"e_1_2_1_5_2","volume-title":"UNIX System V Release 4 Programmers Guide","author":"AT&T","year":"1990"},{"issue":"4","key":"e_1_2_1_6_2","first-page":"78","article-title":"Installed shareable images","volume":"6","author":"Hobbs J.","year":"1987","journal-title":"Dec. Professional"},{"issue":"4","key":"e_1_2_1_7_2","first-page":"273","article-title":"Dynamic linking in OS\/2","volume":"13","author":"Letwin G.","year":"1988","journal-title":"Byte"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/363095.363139"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380170704"},{"key":"e_1_2_1_10_2","volume-title":"An Introduction to Display Editing with Vi","author":"Joy W.","year":"1986"},{"key":"e_1_2_1_11_2","unstructured":"S.Kaufer R.LopezandS.Pratap Saber\u2010C\u2014an interpreter\u2010based programming environment for the C language USENIX Conference Proceedings USENIX San Francisco Summer1988 pp.161\u2013171."},{"key":"e_1_2_1_12_2","doi-asserted-by":"crossref","unstructured":"B. B.Chase Selective interpretation as a technique for debugging computationally intensive programs Proc. SIGPLAN 87 Symposium on Interpreters and Interpretive Techniques St. Paul MN July1987 pp.113\u2013124.","DOI":"10.1145\/29650.29662"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380210207"},{"key":"e_1_2_1_14_2","volume-title":"GDB Manual (The GNU Source\u2010Level Debugger)","author":"Stallman R. M.","year":"1989"},{"key":"e_1_2_1_15_2","doi-asserted-by":"crossref","unstructured":"Z.AralandI.Gertner High\u2010level debugging in parasight ACM Workshop on Parallel and Distributed Debugging Madison WI May1988 pp.151\u2013162.","DOI":"10.1145\/69215.69230"},{"key":"e_1_2_1_16_2","volume-title":"UNIX System Security","author":"Wood P. H.","year":"1985"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380210404","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380210404","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T05:52:03Z","timestamp":1698040323000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380210404"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1991,4]]},"references-count":15,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1991,4]]}},"alternative-id":["10.1002\/spe.4380210404"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380210404","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,4]]}}}