{"id":"https://openalex.org/W2168374629","doi":"https://doi.org/10.1017/s0956796806006198","title":"An extended comparative study of language support for generic programming","display_name":"An extended comparative study of language support for generic programming","publication_year":2006,"publication_date":"2006-12-19","ids":{"openalex":"https://openalex.org/W2168374629","doi":"https://doi.org/10.1017/s0956796806006198","mag":"2168374629"},"language":"en","primary_location":{"id":"doi:10.1017/s0956796806006198","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796806006198","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/C97D5964ECC2E651EEF9A70BC50600A6/S0956796806006198a.pdf/div-class-title-an-extended-comparative-study-of-language-support-for-generic-programming-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/C97D5964ECC2E651EEF9A70BC50600A6/S0956796806006198a.pdf/div-class-title-an-extended-comparative-study-of-language-support-for-generic-programming-div.pdf","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":["Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail:","Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail: garcia@osl.iu.edu, lums@osl.iu.edu, jewillco@osl.iu.edu)#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail:","institution_ids":["https://openalex.org/I4210119109"]},{"raw_affiliation_string":"Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail: garcia@osl.iu.edu, lums@osl.iu.edu, jewillco@osl.iu.edu)#TAB#","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/I91045830","display_name":"Texas A&M University","ror":"https://ror.org/01f5ytq51","country_code":"US","type":"education","lineage":["https://openalex.org/I91045830"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"JAAKKO JARVI","raw_affiliation_strings":["Texas A&M University, Computer Science, College Station, TX, USA (e-mail:","Texas A&M University, Computer Science, College Station, TX, USA (e-mail: jarvi@cs.tamu.edu)"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Texas A&M University, Computer Science, College Station, TX, USA (e-mail:","institution_ids":["https://openalex.org/I91045830"]},{"raw_affiliation_string":"Texas A&M University, Computer Science, College Station, TX, USA (e-mail: jarvi@cs.tamu.edu)","institution_ids":["https://openalex.org/I91045830"]}]},{"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":["Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail:","Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail: garcia@osl.iu.edu, lums@osl.iu.edu, jewillco@osl.iu.edu)#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail:","institution_ids":["https://openalex.org/I4210119109"]},{"raw_affiliation_string":"Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail: garcia@osl.iu.edu, lums@osl.iu.edu, jewillco@osl.iu.edu)#TAB#","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/I74775410","display_name":"Rice University","ror":"https://ror.org/008zs3103","country_code":"US","type":"education","lineage":["https://openalex.org/I74775410"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"JEREMY SIEK","raw_affiliation_strings":["Rice University, Computer Science, Houston, TX, USA (e-mail:","Rice University, Computer Science, Houston, TX, USA (e-mail: jeremy.g.siek@rice.edu)"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Rice University, Computer Science, Houston, TX, USA (e-mail:","institution_ids":["https://openalex.org/I74775410"]},{"raw_affiliation_string":"Rice University, Computer Science, Houston, TX, USA (e-mail: jeremy.g.siek@rice.edu)","institution_ids":["https://openalex.org/I74775410"]}]},{"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":["Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail:","Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail: garcia@osl.iu.edu, lums@osl.iu.edu, jewillco@osl.iu.edu)#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail:","institution_ids":["https://openalex.org/I4210119109"]},{"raw_affiliation_string":"Open Systems Lab, Indiana University, Bloomington, IN, USA (e-mail: garcia@osl.iu.edu, lums@osl.iu.edu, jewillco@osl.iu.edu)#TAB#","institution_ids":["https://openalex.org/I4210119109"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":12.0178,"has_fulltext":true,"cited_by_count":74,"citation_normalized_percentile":{"value":0.98544547,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"17","issue":"2","first_page":"145","last_page":"205"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"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.9998000264167786,"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.9987999796867371,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9961000084877014,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/computer-science","display_name":"Computer science","score":0.8881255984306335},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8102606534957886},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.6964736580848694},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.5597310066223145},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.5310899019241333},{"id":"https://openalex.org/keywords/language-construct","display_name":"Language construct","score":0.47775712609291077},{"id":"https://openalex.org/keywords/fifth-generation-programming-language","display_name":"Fifth-generation programming language","score":0.4670374095439911},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.4501788020133972},{"id":"https://openalex.org/keywords/declarative-programming","display_name":"Declarative programming","score":0.42641115188598633},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.38564440608024597},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.34509560465812683}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8881255984306335},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8102606534957886},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.6964736580848694},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.5597310066223145},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.5310899019241333},{"id":"https://openalex.org/C48859967","wikidata":"https://www.wikidata.org/wiki/Q6486712","display_name":"Language construct","level":2,"score":0.47775712609291077},{"id":"https://openalex.org/C199305712","wikidata":"https://www.wikidata.org/wiki/Q3205914","display_name":"Fifth-generation programming language","level":3,"score":0.4670374095439911},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.4501788020133972},{"id":"https://openalex.org/C146206909","wikidata":"https://www.wikidata.org/wiki/Q531152","display_name":"Declarative programming","level":4,"score":0.42641115188598633},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.38564440608024597},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.34509560465812683}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1017/s0956796806006198","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796806006198","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/C97D5964ECC2E651EEF9A70BC50600A6/S0956796806006198a.pdf/div-class-title-an-extended-comparative-study-of-language-support-for-generic-programming-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1017/s0956796806006198","is_oa":true,"landing_page_url":"https://doi.org/10.1017/s0956796806006198","pdf_url":"https://www.cambridge.org/core/services/aop-cambridge-core/content/view/C97D5964ECC2E651EEF9A70BC50600A6/S0956796806006198a.pdf/div-class-title-an-extended-comparative-study-of-language-support-for-generic-programming-div.pdf","source":{"id":"https://openalex.org/S12266929","display_name":"Journal of Functional Programming","issn_l":"0956-7968","issn":["0956-7968","1469-7653"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310311721","host_organization_name":"Cambridge University Press","host_organization_lineage":["https://openalex.org/P4310311721","https://openalex.org/P4310311702"],"host_organization_lineage_names":["Cambridge University Press","University of Cambridge"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Functional Programming","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6584517102","display_name":"ITR:  A Paradigm of Parallel Programming for Morton-Ordered Matrices","funder_award_id":"0219884","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G8501548436","display_name":"NGS: Open Compilation for Self-Optimizing Generic Components","funder_award_id":"0131354","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320306084","display_name":"U.S. Department of Energy","ror":"https://ror.org/01bj3aw27"},{"id":"https://openalex.org/F4320307758","display_name":"Eli Lilly and Company","ror":"https://ror.org/01qat3289"},{"id":"https://openalex.org/F4320309409","display_name":"Lilly Endowment","ror":"https://ror.org/00cpsd622"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2168374629.pdf","grobid_xml":"https://content.openalex.org/works/W2168374629.grobid-xml"},"referenced_works_count":55,"referenced_works":["https://openalex.org/W53500718","https://openalex.org/W100668331","https://openalex.org/W168248273","https://openalex.org/W194677851","https://openalex.org/W204886091","https://openalex.org/W975212003","https://openalex.org/W1485098211","https://openalex.org/W1521422937","https://openalex.org/W1522681403","https://openalex.org/W1546727036","https://openalex.org/W1555946950","https://openalex.org/W1572663059","https://openalex.org/W1594144676","https://openalex.org/W1594279870","https://openalex.org/W1598339794","https://openalex.org/W1602755719","https://openalex.org/W1610570299","https://openalex.org/W1649645444","https://openalex.org/W1804419222","https://openalex.org/W1829244603","https://openalex.org/W1919687110","https://openalex.org/W1967151380","https://openalex.org/W1972445726","https://openalex.org/W2017927472","https://openalex.org/W2029360780","https://openalex.org/W2029414465","https://openalex.org/W2030749249","https://openalex.org/W2033619100","https://openalex.org/W2040440925","https://openalex.org/W2057670587","https://openalex.org/W2068336423","https://openalex.org/W2084390603","https://openalex.org/W2104076942","https://openalex.org/W2107214848","https://openalex.org/W2116616150","https://openalex.org/W2117174233","https://openalex.org/W2136316331","https://openalex.org/W2137417304","https://openalex.org/W2145652528","https://openalex.org/W2155762874","https://openalex.org/W2168938117","https://openalex.org/W2169528473","https://openalex.org/W2175912519","https://openalex.org/W2182778461","https://openalex.org/W2227557434","https://openalex.org/W2295701783","https://openalex.org/W2515102472","https://openalex.org/W2615021255","https://openalex.org/W2912333754","https://openalex.org/W4230662430","https://openalex.org/W4233840497","https://openalex.org/W4234246560","https://openalex.org/W4254691308","https://openalex.org/W4285719527","https://openalex.org/W6829398901"],"related_works":["https://openalex.org/W2110317952","https://openalex.org/W2886887129","https://openalex.org/W4244888611","https://openalex.org/W2157155332","https://openalex.org/W2041555632","https://openalex.org/W4205481509","https://openalex.org/W1511530761","https://openalex.org/W110431630","https://openalex.org/W2264335287","https://openalex.org/W2168374629"],"abstract_inverted_index":{"Abstract":[0],"Many":[1],"modern":[2],"programming":[3,47,50,86],"languages":[4,15,161],"support":[5,100,107,163],"basic":[6,20,82],"generics,":[7,164],"sufficient":[8],"to":[9,150,175],"implement":[10],"type-safe":[11],"polymorphic":[12],"containers.":[13],"Some":[14],"have":[16,26],"moved":[17],"beyond":[18],"this":[19,101],"support,":[21],"and":[22,66,132,135,156,182],"in":[23,48,73,90],"doing":[24],"so":[25],"enabled":[27],"a":[28,40,70],"broader,":[29],"more":[30],"powerful":[31],"form":[32],"of":[33,43,75,84,104,130,180],"generic":[34,46,85,105,141],"programming.":[35],"This":[36],"paper":[37],"reports":[38],"on":[39,113,121],"comprehensive":[41],"comparison":[42],"facilities":[44],"for":[45,108,140,189],"eight":[49,96],"languages:":[51],"C++,":[52],"Standard":[53],"ML,":[54],"Objective":[55],"Caml,":[56],"Haskell,":[57],"Eiffel,":[58],"Java,":[59],"C#":[60],"(with":[61],"its":[62],"proposed":[63],"generics":[64,181],"extension),":[65],"Cecil.":[67],"By":[68],"implementing":[69],"substantial":[71],"example":[72],"each":[74,91],"these":[76,146],"languages,":[77],"we":[78],"illustrate":[79],"how":[80],"the":[81,172,177],"roles":[83],"can":[87,186],"be":[88],"represented":[89],"language.":[92],"We":[93,143],"also":[94],"identify":[95],"language":[97,169],"properties":[98],"that":[99,145,168,183],"broader":[102],"view":[103],"programming:":[106],"multi-type":[109],"concepts,":[110],"multiple":[111],"constraints":[112,120],"type":[114,118,126,138],"parameters,":[115],"convenient":[116],"associated":[117,122],"access,":[119],"types,":[123],"retroactive":[124],"modeling,":[125],"aliases,":[127],"separate":[128],"compilation":[129],"algorithms":[131],"data":[133],"structures,":[134],"implicit":[136],"argument":[137],"deduction":[139],"algorithms.":[142],"find":[144],"features":[147,173],"are":[148],"necessary":[149,174],"avoid":[151],"awkward":[152],"designs,":[153],"poor":[154],"maintainability,":[155],"painfully":[157],"verbose":[158],"code.":[159],"As":[160],"increasingly":[162],"it":[165],"is":[166],"important":[167],"designers":[170],"understand":[171],"enable":[176],"effective":[178],"use":[179],"their":[184],"absence":[185],"cause":[187],"difficulties":[188],"programmers.":[190]},"counts_by_year":[{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":2},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":2},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":4},{"year":2014,"cited_by_count":3},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":8}],"updated_date":"2026-05-27T06:14:07.914337","created_date":"2025-10-10T00:00:00"}
