{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:40:28Z","timestamp":1750308028776,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":45,"publisher":"ACM","license":[{"start":{"date-parts":[[2007,10,1]],"date-time":"2007-10-01T00:00:00Z","timestamp":1191196800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2007,10]]},"DOI":"10.1145\/1289971.1289984","type":"proceedings-article","created":{"date-parts":[[2007,10,14]],"date-time":"2007-10-14T12:51:38Z","timestamp":1192366298000},"page":"73-82","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":6,"title":["Library composition and adaptation using c++ concepts"],"prefix":"10.1145","author":[{"given":"Jaakko","family":"J\u00e4rvi","sequence":"first","affiliation":[{"name":"Texas A&amp;M University, College Station, TX"}]},{"given":"Matthew A.","family":"Marcus","sequence":"additional","affiliation":[{"name":"Adobe Systems: Inc., Seattle, WA"}]},{"given":"Jacob N.","family":"Smith","sequence":"additional","affiliation":[{"name":"Texas A&amp;M University, College Station, TX"}]}],"member":"320","published-online":{"date-parts":[[2007,10]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"(GCC) 4.3.0 20070330 (experimental) (Indiana University Concept GCC alpha7 prerelease).  (GCC) 4.3.0 20070330 (experimental) (Indiana University Concept GCC alpha7 prerelease)."},{"key":"e_1_3_2_1_2_1","unstructured":"Boost Smart Pointers Library. www.boost.org\/libs\/smart_ptr.  Boost Smart Pointers Library. www.boost.org\/libs\/smart_ptr."},{"key":"e_1_3_2_1_3_1","unstructured":"Adobe Systems Inc. Adobe Source Library 2005. opensource.adobe.com.  Adobe Systems Inc. Adobe Source Library 2005. opensource.adobe.com."},{"key":"e_1_3_2_1_4_1","series-title":"Lecture Notes in Computer Science","first-page":"193","volume-title":"Languages and Compilers for Parallel Computing","author":"An P.","year":"2001","unstructured":"P. An , A. Jula , S. Rus , S. Saunders , T. Smith , G. Tanase , N. Thomas , N. Amato , and L. Rauchwerger . STAPL: An adaptive, generic parallel C++ library . In Languages and Compilers for Parallel Computing , volume 2624 of Lecture Notes in Computer Science , pages 193 -- 208 . Springer , Aug. 2001 . P. An, A. Jula, S. Rus, S. Saunders, T. Smith, G. Tanase, N. Thomas, N. Amato, and L. Rauchwerger. STAPL: An adaptive, generic parallel C++ library. In Languages and Compilers for Parallel Computing, volume 2624 of Lecture Notes in Computer Science, pages 193--208. Springer, Aug. 2001."},{"key":"e_1_3_2_1_5_1","series-title":"Professional Computing Series","volume-title":"Generic programming and the STL: Using and extending the C++ Standard Template Library","author":"Austern M. H.","year":"1998","unstructured":"M. H. Austern . Generic programming and the STL: Using and extending the C++ Standard Template Library . Professional Computing Series . Addison-Wesley Longman Publishing Co., Inc. , Boston, MA, USA , 1998 . M. H. Austern. Generic programming and the STL: Using and extending the C++ Standard Template Library. Professional Computing Series. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1998."},{"key":"e_1_3_2_1_8_1","unstructured":"Boost. Boost C++ Libraries. http:\/\/www.boost.org\/.  Boost. Boost C++ Libraries. http:\/\/www.boost.org\/."},{"key":"e_1_3_2_1_9_1","volume-title":"Generic Image Library","author":"Bourdev L.","year":"2006","unstructured":"L. Bourdev and H. Jin . Generic Image Library , 2006 . opensource.adobe.com\/gil. L. Bourdev and H. Jin. Generic Image Library, 2006. opensource.adobe.com\/gil."},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.5555\/1898699.1898950"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086397"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040306"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1002\/1097-024X(200009)30:11%3C1167::AID-SPE337%3E3.0.CO;2-B"},{"key":"e_1_3_2_1_14_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"1995","unstructured":"E. Gamma , R. Helm , R. Johnson , and J. Vlissides . Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley Publishing Co. , New York, NY, USA , 1995 . E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Co., New York, NY, USA, 1995."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806006198"},{"key":"e_1_3_2_1_16_1","unstructured":"D. Gregor. ConceptGCC: Concept extensions for C++. http:\/\/www.generic-programming.org\/software\/ConceptGCC 2005.  D. Gregor. ConceptGCC: Concept extensions for C++. http:\/\/www.generic-programming.org\/software\/ConceptGCC 2005."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167499"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094844"},{"key":"e_1_3_2_1_20_1","unstructured":"IBM Research. Subject-oriented programming and the adapter pattern. www.research.ibm.com\/sop\/sopcadap.htm.  IBM Research. Subject-oriented programming and the adapter pattern. www.research.ibm.com\/sop\/sopcadap.htm."},{"key":"e_1_3_2_1_21_1","volume-title":"Programming languages: C++","author":"International Organization for Standardization. ISO\/IEC 14882:2003","year":"2003","unstructured":"International Organization for Standardization. ISO\/IEC 14882:2003 : Programming languages: C++ . Geneva, Switzerland , 2 nd edition, Oct. 2003 . International Organization for Standardization. ISO\/IEC 14882:2003: Programming languages: C++. Geneva, Switzerland, 2nd edition, Oct. 2003.","edition":"2"},{"key":"e_1_3_2_1_22_1","series-title":"LNCS","doi-asserted-by":"crossref","first-page":"228","DOI":"10.1007\/978-3-540-39815-8_14","volume-title":"Generative Programming and Component Engineering","author":"J\u00e4rvi J.","year":"2003","unstructured":"J. J\u00e4rvi , J. Willcock , and A. Lumsdaine . Concept-controlled polymorphism . In F. Pfennig and Y. Smaragdakis, editors, Generative Programming and Component Engineering , volume 2830 of LNCS , pages 228 -- 244 . Springer Verlag , Sept. 2003 . J. J\u00e4rvi, J. Willcock, and A. Lumsdaine. Concept-controlled polymorphism. In F. Pfennig and Y. Smaragdakis, editors, Generative Programming and Component Engineering, volume 2830 of LNCS, pages 228--244. Springer Verlag, Sept. 2003."},{"key":"e_1_3_2_1_23_1","volume-title":"Schloss Dagstuhl","author":"Jazayeri M.","year":"1998","unstructured":"M. Jazayeri , R. Loos , D. Musser , and A. Stepanov . Generic Programming. In Report of the Dagstuhl Seminar on Generic Programming , Schloss Dagstuhl , Germany , Apr. 1998 . M. Jazayeri, R. Loos, D. Musser, and A. Stepanov. Generic Programming. In Report of the Dagstuhl Seminar on Generic Programming, Schloss Dagstuhl, Germany, Apr. 1998."},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.5555\/645394.651909"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"crossref","unstructured":"G.\n      Kiczales E.\n      Hilsdale J.\n      Hugunin M.\n      Kersten J.\n      Palm and \n      W. G.\n      Griswold\n  . \n  An overview of AspectJ\n  . In J. L. Knudsen editor ECOOP \n  2001\n   - Object-Oriented Programming 15th European Conference volume \n  2072\n   of \n  Lecture Notes in Computer Science pages \n  327\n  --\n  353\n  . \n  Springer-Verlag New York NY June 2001.   G. Kiczales E. Hilsdale J. Hugunin M. Kersten J. Palm and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen editor ECOOP 2001 - Object-Oriented Programming 15th European Conference volume 2072 of Lecture Notes in Computer Science pages 327--353. Springer-Verlag New York NY June 2001.","DOI":"10.1007\/3-540-45337-7_18"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1173706.1173732"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/43.6.469"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286979"},{"key":"e_1_3_2_1_29_1","volume-title":"Nov.","author":"Magnusson B.","year":"1991","unstructured":"B. Magnusson . Code reuse considered harmful Journal of Object-Oriented Programming, 4(3) , Nov. 1991 . B. Magnusson. Code reuse considered harmful Journal of Object-Oriented Programming, 4(3), Nov. 1991."},{"key":"e_1_3_2_1_30_1","volume-title":"Multiparadigm Programming 2007: Proceedings of the MPOOL Workshop at ECOOP'07","author":"Marcus M.","year":"2007","unstructured":"M. Marcus , J. J\u00e4rvi , and S. Parent . Runtime polymorphic generic programming - mixing objects and concepts in ConceptC++ . In K. Davis and J. Striegnitz, editors, Multiparadigm Programming 2007: Proceedings of the MPOOL Workshop at ECOOP'07 , July 2007 . To appear. M. Marcus, J. J\u00e4rvi, and S. Parent. Runtime polymorphic generic programming - mixing objects and concepts in ConceptC++. In K. Davis and J. Striegnitz, editors, Multiparadigm Programming 2007: Proceedings of the MPOOL Workshop at ECOOP'07, July 2007. To appear."},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/317665.317679"},{"key":"e_1_3_2_1_32_1","volume-title":"First Workshop on C++ Template Programming","author":"McNamara B.","year":"2000","unstructured":"B. McNamara and Y. Smaragdakis . Static interfaces in C++ . In First Workshop on C++ Template Programming , Erfurt, Germany , Oct. 2000 . B. McNamara and Y. Smaragdakis. Static interfaces in C++. In First Workshop on C++ Template Programming, Erfurt, Germany, Oct. 2000."},{"key":"e_1_3_2_1_33_1","volume-title":"The LEDA Platform of Combinatorial and Geometric Computing","author":"Mehlhorn K.","year":"1999","unstructured":"K. Mehlhorn and S. N\u00e4her . The LEDA Platform of Combinatorial and Geometric Computing . Cambridge University Press , 1999 . K. Mehlhorn and S. N\u00e4her. The LEDA Platform of Combinatorial and Geometric Computing. Cambridge University Press, 1999."},{"key":"e_1_3_2_1_34_1","volume-title":"Proceedings of the First International Workshop of Library-Centric Software Design (LCSD '05). An OOPSLA '05 workshop","author":"Mitchell N.","year":"2005","unstructured":"N. Mitchell , G. Sevitsky , and H. Srinivasan . The diary of a datum: An approach to modeling runtime complexity in framework-based applications . In Proceedings of the First International Workshop of Library-Centric Software Design (LCSD '05). An OOPSLA '05 workshop , Oct. 2005 . As technical report 06-12 of Rensselaer Polytechnic Institute, Computer Science Department. N. Mitchell, G. Sevitsky, and H. Srinivasan. The diary of a datum: An approach to modeling runtime complexity in framework-based applications. In Proceedings of the First International Workshop of Library-Centric Software Design (LCSD '05). An OOPSLA '05 workshop, Oct. 2005. As technical report 06-12 of Rensselaer Polytechnic Institute, Computer Science Department."},{"key":"e_1_3_2_1_35_1","volume-title":"June","author":"Myers N. C.","year":"1995","unstructured":"N. C. Myers . Traits: a new and useful template technique. C++ Report , June 1995 . N. C. Myers. Traits: a new and useful template technique. C++ Report, June 1995."},{"key":"e_1_3_2_1_36_1","volume-title":"Functional Programming","author":"Odersky M.","year":"2006","unstructured":"M. Odersky . Poor man's type classes. Presentation at the meeting of IFIP WG 2.8 , Functional Programming , July 2006 . http:\/\/lamp.epfl.ch\/~odersky\/talks\/wg2.8-boston06.pdf. M. Odersky. Poor man's type classes. Presentation at the meeting of IFIP WG 2.8, Functional Programming, July 2006. http:\/\/lamp.epfl.ch\/~odersky\/talks\/wg2.8-boston06.pdf."},{"key":"e_1_3_2_1_37_1","first-page":"17","article-title":"The Scala language specification","volume":"0","author":"Odersky M.","year":"2006","unstructured":"M. Odersky . The Scala language specification : Version 2 . 0 , draft march 17 , 2006 . http:\/\/scala.epfl.ch\/docu\/files\/ScalaReference.pdf, 2006. M. Odersky. The Scala language specification: Version 2.0, draft march 17, 2006. http:\/\/scala.epfl.ch\/docu\/files\/ScalaReference.pdf, 2006.","journal-title":"Version 2"},{"key":"e_1_3_2_1_38_1","volume-title":"Nov.","author":"Parent S.","year":"2005","unstructured":"S. Parent . Beyond objects: Understanding the software we write. Presentation at C++ Connections, opensource.adobe.com\/wiki\/index.php\/Image:Regular_object_presentation.pdf , Nov. 2005 . S. Parent. Beyond objects: Understanding the software we write. Presentation at C++ Connections, opensource.adobe.com\/wiki\/index.php\/Image:Regular_object_presentation.pdf, Nov. 2005."},{"key":"e_1_3_2_1_39_1","volume-title":"Portland","author":"Parent S.","year":"2006","unstructured":"S. Parent . A possible future for software development. Keynote talk at the Workshop of Library-Centric Software Design 2006, at OOPSLA'06 , Portland , Oregon , 2006 . lcsd.cs.tamu.edu\/2006. S. Parent. A possible future for software development. Keynote talk at the Workshop of Library-Centric Software Design 2006, at OOPSLA'06, Portland, Oregon, 2006. lcsd.cs.tamu.edu\/2006."},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1093\/bioinformatics\/17.8.729"},{"key":"e_1_3_2_1_41_1","volume-title":"The Boost Graph Library: User Guide and Reference Manual","author":"Siek J.","year":"2002","unstructured":"J. Siek , L.-Q. Lee , and A. Lumsdaine . The Boost Graph Library: User Guide and Reference Manual . Addison-Wesley Longman Publishing Co., Inc. , Boston, MA, USA , 2002 . J. Siek, L.-Q. Lee, and A. Lumsdaine. The Boost Graph Library: User Guide and Reference Manual. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2002."},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/5992.805137"},{"key":"e_1_3_2_1_43_1","volume-title":"First Workshop on C++ Template Programming","author":"Siek J.","year":"2000","unstructured":"J. Siek and A. Lumsdaine . Concept checking: Binding parametric polymorphism in C++ . In First Workshop on C++ Template Programming , Oct. 2000 . J. Siek and A. Lumsdaine. Concept checking: Binding parametric polymorphism in C++. In First Workshop on C++ Template Programming, Oct. 2000."},{"key":"e_1_3_2_1_44_1","volume-title":"Boost","author":"Siek J.","year":"2001","unstructured":"J. Siek , A. Lumsdaine , and L.-Q. Lee . Boost Graph Library . Boost , 2001 . www.boost.org\/libs\/graph. J. Siek, A. Lumsdaine, and L.-Q. Lee. Boost Graph Library. Boost, 2001. www.boost.org\/libs\/graph."},{"key":"e_1_3_2_1_45_1","unstructured":"Silicon Graphics Inc. SGI Implementation of the Standard Template Library 2004. http:\/\/www.sgi.com\/tech\/stl\/.  Silicon Graphics Inc. SGI Implementation of the Standard Template Library 2004. http:\/\/www.sgi.com\/tech\/stl\/."},{"key":"e_1_3_2_1_47_1","volume-title":"Component software: beyond object-oriented programming","author":"Szyperski C.","year":"1998","unstructured":"C. Szyperski . Component software: beyond object-oriented programming . ACM Press\/Addison-Wesley Publishing Co. , New York, NY, USA , 1998 . C. Szyperski. Component software: beyond object-oriented programming. ACM Press\/Addison-Wesley Publishing Co., New York, NY, USA, 1998."},{"key":"e_1_3_2_1_48_1","unstructured":"M. Troyer and P. Dayal. The Iterative Eigensolver Template Library. http:\/\/www.comp-phys.org:16080\/software\/ietl\/.  M. Troyer and P. Dayal. The Iterative Eigensolver Template Library. http:\/\/www.comp-phys.org:16080\/software\/ietl\/."},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75283"}],"event":{"name":"GPCE '07: Generative Programming and Component Engineering","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","ACM Association for Computing Machinery","SIGSOFT ACM Special Interest Group on Software Engineering"],"location":"Salzburg Austria","acronym":"GPCE '07"},"container-title":["Proceedings of the 6th international conference on Generative programming and component engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1289971.1289984","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1289971.1289984","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T15:13:59Z","timestamp":1750259639000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1289971.1289984"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,10]]},"references-count":45,"alternative-id":["10.1145\/1289971.1289984","10.1145\/1289971"],"URL":"https:\/\/doi.org\/10.1145\/1289971.1289984","relation":{},"subject":[],"published":{"date-parts":[[2007,10]]},"assertion":[{"value":"2007-10-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}