{"id":"https://openalex.org/W2116616150","doi":"https://doi.org/10.1145/949305.949317","title":"A comparative study of language support for generic programming","display_name":"A comparative study of language support for generic programming","publication_year":2003,"publication_date":"2003-10-26","ids":{"openalex":"https://openalex.org/W2116616150","doi":"https://doi.org/10.1145/949305.949317","mag":"2116616150"},"language":"en","primary_location":{"is_oa":false,"landing_page_url":"https://doi.org/10.1145/949305.949317","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false},"type":"article","type_crossref":"proceedings-article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5051937731","display_name":"Ronald Garcia","orcid":"https://orcid.org/0000-0002-0982-1118"},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ronald Garcia","raw_affiliation_strings":["Indiana University- Bloomington, Bloomington, IN."],"affiliations":[{"raw_affiliation_string":"Indiana University- Bloomington, Bloomington, IN.","institution_ids":["https://openalex.org/I4210119109"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5047665290","display_name":"Jaakko J\u00e4rvi","orcid":"https://orcid.org/0000-0002-3418-7366"},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jaakko Jarvi","raw_affiliation_strings":["Indiana University- Bloomington, Bloomington, IN."],"affiliations":[{"raw_affiliation_string":"Indiana University- Bloomington, Bloomington, IN.","institution_ids":["https://openalex.org/I4210119109"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5074260102","display_name":"Andrew Lumsdaine","orcid":"https://orcid.org/0000-0002-9153-6622"},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Andrew Lumsdaine","raw_affiliation_strings":["Indiana University- Bloomington, Bloomington, IN."],"affiliations":[{"raw_affiliation_string":"Indiana University- Bloomington, Bloomington, IN.","institution_ids":["https://openalex.org/I4210119109"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5033999458","display_name":"Jeremy G. Siek","orcid":"https://orcid.org/0000-0002-9894-4856"},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeremy G. Siek","raw_affiliation_strings":["Indiana University- Bloomington, Bloomington, IN."],"affiliations":[{"raw_affiliation_string":"Indiana University- Bloomington, Bloomington, IN.","institution_ids":["https://openalex.org/I4210119109"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013769127","display_name":"Jeremiah Willcock","orcid":null},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeremiah Willcock","raw_affiliation_strings":["Indiana University- Bloomington, Bloomington, IN."],"affiliations":[{"raw_affiliation_string":"Indiana University- Bloomington, Bloomington, IN.","institution_ids":["https://openalex.org/I4210119109"]}]}],"institution_assertions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":11.403,"has_fulltext":false,"cited_by_count":150,"citation_normalized_percentile":{"value":0.948059,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":97,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"115","last_page":"134"},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9996,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9996,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9991,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9968,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.67803454},{"id":"https://openalex.org/keywords/eiffel","display_name":"Eiffel","score":0.52905023},{"id":"https://openalex.org/keywords/third-generation-programming-language","display_name":"Third-generation programming language","score":0.5151397},{"id":"https://openalex.org/keywords/fourth-generation-programming-language","display_name":"Fourth-generation programming language","score":0.49851108},{"id":"https://openalex.org/keywords/maintainability","display_name":"Maintainability","score":0.4811117},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.4243505},{"id":"https://openalex.org/keywords/extensible-programming","display_name":"Extensible programming","score":0.4193795}],"concepts":[{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8505591},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8346779},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.67803454},{"id":"https://openalex.org/C199305712","wikidata":"https://www.wikidata.org/wiki/Q3205914","display_name":"Fifth-generation programming language","level":3,"score":0.59423375},{"id":"https://openalex.org/C11164408","wikidata":"https://www.wikidata.org/wiki/Q18657800","display_name":"Second-generation programming language","level":4,"score":0.58677953},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.55411494},{"id":"https://openalex.org/C186362262","wikidata":"https://www.wikidata.org/wiki/Q732089","display_name":"Eiffel","level":3,"score":0.52905023},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5225403},{"id":"https://openalex.org/C74149592","wikidata":"https://www.wikidata.org/wiki/Q762446","display_name":"Comparison of multi-paradigm programming languages","level":5,"score":0.51934755},{"id":"https://openalex.org/C206146517","wikidata":"https://www.wikidata.org/wiki/Q1294375","display_name":"Third-generation programming language","level":5,"score":0.5151397},{"id":"https://openalex.org/C145628200","wikidata":"https://www.wikidata.org/wiki/Q238137","display_name":"Fourth-generation programming language","level":5,"score":0.49851108},{"id":"https://openalex.org/C160713754","wikidata":"https://www.wikidata.org/wiki/Q1389965","display_name":"Maintainability","level":2,"score":0.4811117},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.4243505},{"id":"https://openalex.org/C131531359","wikidata":"https://www.wikidata.org/wiki/Q5421926","display_name":"Extensible programming","level":5,"score":0.4193795},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.38808185},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.35867548},{"id":"https://openalex.org/C96315309","wikidata":"https://www.wikidata.org/wiki/Q5508829","display_name":"Functional logic programming","level":4,"score":0.3446065},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.343477},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.13594317}],"mesh":[],"locations_count":1,"locations":[{"is_oa":false,"landing_page_url":"https://doi.org/10.1145/949305.949317","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false}],"best_oa_location":null,"sustainable_development_goals":[],"grants":[],"datasets":[],"versions":[],"referenced_works_count":41,"referenced_works":["https://openalex.org/W100668331","https://openalex.org/W1485098211","https://openalex.org/W1501556234","https://openalex.org/W1513612082","https://openalex.org/W1546727036","https://openalex.org/W1555946950","https://openalex.org/W1572663059","https://openalex.org/W1581501197","https://openalex.org/W1594144676","https://openalex.org/W1594279870","https://openalex.org/W1598339794","https://openalex.org/W1610570299","https://openalex.org/W1829244603","https://openalex.org/W1919687110","https://openalex.org/W1925894675","https://openalex.org/W1993068529","https://openalex.org/W2017927472","https://openalex.org/W2029360780","https://openalex.org/W2029414465","https://openalex.org/W2030749249","https://openalex.org/W2035709547","https://openalex.org/W2117174233","https://openalex.org/W2117534212","https://openalex.org/W2131573942","https://openalex.org/W2136316331","https://openalex.org/W2137417304","https://openalex.org/W2143238865","https://openalex.org/W2145652528","https://openalex.org/W2169528473","https://openalex.org/W2175912519","https://openalex.org/W2227557434","https://openalex.org/W2295701783","https://openalex.org/W2515102472","https://openalex.org/W2561675875","https://openalex.org/W2615021255","https://openalex.org/W2912333754","https://openalex.org/W2914964273","https://openalex.org/W2985731159","https://openalex.org/W4254691308","https://openalex.org/W53500718","https://openalex.org/W975212003"],"related_works":["https://openalex.org/W4244888611","https://openalex.org/W4233078458","https://openalex.org/W341140180","https://openalex.org/W3038908675","https://openalex.org/W2954318817","https://openalex.org/W2210462573","https://openalex.org/W2184196891","https://openalex.org/W2148929677","https://openalex.org/W2140911998","https://openalex.org/W1980589934"],"abstract_inverted_index":{"Many":[0],"modern":[1],"programming":[2,50],"languages":[3,15,109],"support":[4,21,82,111],"basic":[5,20],"generic":[6,29,87],"programming,":[7,30],"sufficient":[8],"to":[9,22,95,123],"implement":[10],"type-safe":[11],"polymorphic":[12],"containers.":[13],"Some":[14],"have":[16,34],"moved":[17],"beyond":[18],"this":[19,83],"a":[23,43,68],"broader,":[24],"more":[25],"powerful":[26,125],"interpretation":[27],"of":[28,46,73,86],"and":[31,63,104,127],"their":[32,129],"extensions":[33],"proven":[35],"valuable":[36],"in":[37,48,71],"practice.":[38],"This":[39],"paper":[40],"reports":[41],"on":[42],"comprehensive":[44],"comparison":[45],"generics":[47,61,126],"six":[49],"languages:":[51],"C++,":[52],"Standard":[53],"ML,":[54],"Haskell,":[55],"Eiffel,":[56],"Java":[57],"(with":[58],"its":[59],"proposed":[60],"extension),":[62],"Generic":[64],"C.":[65],"By":[66],"implementing":[67],"substantial":[69],"example":[70],"each":[72],"these":[74,91],"languages,":[75],"we":[76],"identify":[77],"eight":[78],"language":[79,117],"features":[80,92,121],"that":[81,116,128],"broader":[84],"view":[85],"programming.":[88],"We":[89],"find":[90],"are":[93],"necessary":[94,122],"avoid":[96],"awkward":[97],"designs,":[98],"poor":[99],"maintainability,":[100],"unnecessary":[101],"run-time":[102],"checks,":[103],"painfully":[105],"verbose":[106],"code.":[107],"As":[108],"increasingly":[110],"generics,":[112],"it":[113],"is":[114],"important":[115],"designers":[118],"understand":[119],"the":[120],"provide":[124],"absence":[130],"causes":[131],"serious":[132],"difficulties":[133],"for":[134],"programmers.":[135]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W2116616150","counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":5},{"year":2014,"cited_by_count":6},{"year":2013,"cited_by_count":8},{"year":2012,"cited_by_count":14}],"updated_date":"2024-12-20T23:10:14.055314","created_date":"2016-06-24"}