{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,8,7]],"date-time":"2024-08-07T22:40:06Z","timestamp":1723070406029},"reference-count":0,"publisher":"Wiley","issue":"4","license":[{"start":{"date-parts":[[2000,1,1]],"date-time":"2000-01-01T00:00:00Z","timestamp":946684800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Scientific Programming"],"published-print":{"date-parts":[[2003,1]]},"abstract":"<jats:p>We apply the notion of design patterns to optimizations performed by designers of software libraries, focusing especially on object\u2010oriented numerical libraries. We formalize three design patterns that we have abstracted from many existing libraries and discuss the role of these formalizations as a tool for guiding compiler optimizers. These optimizers operate at a very high level that would otherwise be left unoptimized by traditional optimizers. Finally, we discuss the implementation of a design pattern\u2010based compiler optimizer for C++ abstract data types.<\/jats:p>","DOI":"10.1155\/2003\/382319","type":"journal-article","created":{"date-parts":[[2015,1,12]],"date-time":"2015-01-12T13:57:15Z","timestamp":1421071035000},"page":"309-320","source":"Crossref","is-referenced-by-count":1,"title":["Design Patterns for Library Optimization"],"prefix":"10.1155","volume":"11","author":[{"given":"Douglas","family":"Gregor","sequence":"first","affiliation":[]},{"given":"Sibylle","family":"Schupp","sequence":"additional","affiliation":[]},{"given":"David R.","family":"Musser","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2003,12,2]]},"container-title":["Scientific Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/downloads.hindawi.com\/journals\/sp\/2003\/382319.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1155\/2003\/382319","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,8,7]],"date-time":"2024-08-07T22:17:06Z","timestamp":1723069026000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1155\/2003\/382319"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003,1]]},"references-count":0,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2003,1]]}},"alternative-id":["10.1155\/2003\/382319"],"URL":"https:\/\/doi.org\/10.1155\/2003\/382319","archive":["Portico"],"relation":{},"ISSN":["1058-9244","1875-919X"],"issn-type":[{"type":"print","value":"1058-9244"},{"type":"electronic","value":"1875-919X"}],"subject":[],"published":{"date-parts":[[2003,1]]}}}