{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,26]],"date-time":"2026-01-26T00:55:36Z","timestamp":1769388936823,"version":"3.49.0"},"reference-count":11,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4504,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1994,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We outline an approach to construction of software libraries in which generic algorithms (algorithmic abstractions) play a more central role than in conventional software library technology or in the object\u2010oriented programming paradigm. Our approach is to consider algorithms first, decide what types and access operations they need for efficient execution, and regard the types and operations as formal parameters that can be instantiated in many different ways, as long as the actual parameters satisfy the assumptions on which the correctness and efficiency of the algorithms are based. The means by which instantiation is carried out is language dependent; in the C + + examples in this paper, we instantiate generic algorithms by constructing classes that define the needed types and access operations. By use of such compile\u2010time techniques and careful attention to algorithmic issues, it is possible to construct software components of broad utility with no sacrifice of efficiency.<\/jats:p>","DOI":"10.1002\/spe.4380240703","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T07:12:30Z","timestamp":1163833950000},"page":"623-642","source":"Crossref","is-referenced-by-count":70,"title":["Algorithm\u2010oriented generic libraries"],"prefix":"10.1002","volume":"24","author":[{"given":"David R.","family":"Musser","sequence":"first","affiliation":[]},{"given":"Alexander A.","family":"Stepanov","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"Software Components with Ada","author":"Booch G.","year":"1987"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/97946.97947"},{"key":"e_1_2_1_4_2","volume-title":"The GNU C+ + Library","author":"Lea D.","year":"1988"},{"key":"e_1_2_1_5_2","doi-asserted-by":"crossref","unstructured":"D. R.MusserandA. A.Stepanov \u2018A library of generic algorithms in Ada\u2019 Proc. 1987 ACM SIGAda International Conference Boston December1987 pp.216\u2013225.","DOI":"10.1145\/317500.317529"},{"key":"e_1_2_1_6_2","volume-title":"ISSAC 88 Symbolic and Algebraic Computation Proceedings, Lecture Notes in Computer Science 358","author":"Musser D. R.","year":"1989"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4684-7089-5"},{"key":"e_1_2_1_8_2","volume-title":"The Annotated C++ Reference Manual","author":"Ellis M.","year":"1990"},{"key":"e_1_2_1_9_2","volume-title":"Introduction to Algorithms","author":"Cormen T. H.","year":"1990"},{"key":"e_1_2_1_10_2","volume-title":"The Art of Computer Programming, Volume 3: Sorting and Searching","author":"Knuth D. E.","year":"1973"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/359619.359631"},{"key":"e_1_2_1_12_2","unstructured":"D. R.MusserandA. A.Stepanov \u2018Algorithm\u2010oriented generic libraries\u2019 Rensselaer Polytechnic Institute Computer Science Department Technical Report 93\u201323 September 1993 revised January1994."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380240703","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380240703","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,9,28]],"date-time":"2023-09-28T02:23:53Z","timestamp":1695867833000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380240703"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1994,7]]},"references-count":11,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1994,7]]}},"alternative-id":["10.1002\/spe.4380240703"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380240703","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1994,7]]}}}