{"id":"https://openalex.org/W2037643726","doi":"https://doi.org/10.1145/2491956.2491962","title":"Harmonizing classes, functions, tuples, and type parameters in virgil iii","display_name":"Harmonizing classes, functions, tuples, and type parameters in virgil iii","publication_year":2013,"publication_date":"2013-06-11","ids":{"openalex":"https://openalex.org/W2037643726","doi":"https://doi.org/10.1145/2491956.2491962","mag":"2037643726"},"language":"en","primary_location":{"id":"doi:10.1145/2491956.2491962","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2491956.2491962","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},"type":"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/A5034437441","display_name":"Ben L. Titzer","orcid":"https://orcid.org/0000-0002-9690-2089"},"institutions":[{"id":"https://openalex.org/I1291425158","display_name":"Google (United States)","ror":"https://ror.org/00njsd438","country_code":"US","type":"company","lineage":["https://openalex.org/I1291425158","https://openalex.org/I4210128969"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Ben L. Titzer","raw_affiliation_strings":["Google, Mountain View, CA, USA"],"affiliations":[{"raw_affiliation_string":"Google, Mountain View, CA, USA","institution_ids":["https://openalex.org/I1291425158"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5034437441"],"corresponding_institution_ids":["https://openalex.org/I1291425158"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.08758185,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":94},"biblio":{"volume":null,"issue":null,"first_page":"85","last_page":"94"},"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.9991999864578247,"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.9991999864578247,"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.9958000183105469,"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"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9937000274658203,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/tuple","display_name":"Tuple","score":0.8172793984413147},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7757863402366638},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6307226419448853},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.5065740346908569},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.4673101603984833},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4532890319824219},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.437640905380249},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.41413506865501404},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.37394148111343384},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.32242661714553833},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.11452791094779968},{"id":"https://openalex.org/keywords/discrete-mathematics","display_name":"Discrete mathematics","score":0.09559905529022217}],"concepts":[{"id":"https://openalex.org/C118930307","wikidata":"https://www.wikidata.org/wiki/Q600590","display_name":"Tuple","level":2,"score":0.8172793984413147},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7757863402366638},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6307226419448853},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.5065740346908569},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.4673101603984833},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4532890319824219},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.437640905380249},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.41413506865501404},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.37394148111343384},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.32242661714553833},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.11452791094779968},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.09559905529022217}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2491956.2491962","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2491956.2491962","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.353.2598","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.353.2598","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"https://virgil.googlecode.com/files/virgil-pldi2013.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.6200000047683716,"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education"}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":35,"referenced_works":["https://openalex.org/W21531875","https://openalex.org/W1500584978","https://openalex.org/W1526736056","https://openalex.org/W1553136405","https://openalex.org/W1595544871","https://openalex.org/W1649645444","https://openalex.org/W1766084276","https://openalex.org/W1770006921","https://openalex.org/W1876545334","https://openalex.org/W2017872908","https://openalex.org/W2018436366","https://openalex.org/W2025407135","https://openalex.org/W2029360780","https://openalex.org/W2030916392","https://openalex.org/W2033485121","https://openalex.org/W2040141020","https://openalex.org/W2044439539","https://openalex.org/W2045903735","https://openalex.org/W2068457689","https://openalex.org/W2107917004","https://openalex.org/W2114201536","https://openalex.org/W2114428527","https://openalex.org/W2119564644","https://openalex.org/W2119976524","https://openalex.org/W2133546079","https://openalex.org/W2133587157","https://openalex.org/W2135510725","https://openalex.org/W2142019528","https://openalex.org/W2143273235","https://openalex.org/W2146069884","https://openalex.org/W2159430067","https://openalex.org/W2171240827","https://openalex.org/W2295471304","https://openalex.org/W4239568094","https://openalex.org/W6637879497"],"related_works":["https://openalex.org/W4232952072","https://openalex.org/W3040669356","https://openalex.org/W2004997206","https://openalex.org/W4252702401","https://openalex.org/W301967743","https://openalex.org/W2469935013","https://openalex.org/W2905001159","https://openalex.org/W4243730528","https://openalex.org/W593478746","https://openalex.org/W3016342375"],"abstract_inverted_index":{"Languages":[0],"are":[1,28,110,197],"becoming":[2],"increasingly":[3],"multi-paradigm.":[4],"Subtype":[5],"polymorphism":[6,16],"in":[7,17,199],"statically-typed":[8],"object-oriented":[9],"languages":[10,33],"is":[11,77,90],"being":[12],"supplemented":[13],"with":[14,79,117,123],"parametric":[15],"the":[18,187],"form":[19],"of":[20,83,127,150,192],"generics.":[21],"Features":[22],"like":[23,34],"first-class":[24],"functions":[25],"and":[26,39,67,96,107,131,157,172,182],"lambdas":[27],"appearing":[29],"everywhere.":[30],"Yet":[31],"existing":[32],"Java,":[35],"C#,":[36],"C++,":[37],"D,":[38],"Scala":[40],"seem":[41],"to":[42,65,87,92],"accrete":[43],"ever":[44],"more":[45,201],"complexity":[46],"when":[47,195],"they":[48],"reach":[49],"beyond":[50],"their":[51],"original":[52],"paradigm":[53],"into":[54],"another;":[55],"inevitably":[56],"older":[57],"features":[58,103,109,159],"have":[59],"some":[60],"rough":[61],"edges":[62],"that":[63,153],"lead":[64],"nonuniformity":[66],"pitfalls.":[68],"Given":[69],"a":[70,73,80,120,124,200],"fresh":[71],"start,":[72],"new":[74,148],"language":[75,122],"designer":[76],"faced":[78],"daunting":[81],"array":[82],"potential":[84],"features.":[85],"Where":[86],"start?":[88],"What":[89,102],"important":[91],"get":[93],"right":[94],"first,":[95],"what":[97,108],"can":[98],"be":[99],"added":[100],"later?":[101],"must":[104],"work":[105],"together,":[106],"orthogonal?":[111],"We":[112],"report":[113],"on":[114],"our":[115],"experience":[116],"Virgil":[118,134],"III,":[119],"practical":[121],"careful":[125],"balance":[126],"classes,":[128],"functions,":[129],"tuples":[130],"type":[132,193],"parameters.":[133],"intentionally":[135],"lacks":[136],"many":[137],"advanced":[138],"features,":[139],"yet":[140],"we":[141,176],"find":[142,177],"its":[143],"core":[144],"feature":[145],"set":[146],"enables":[147],"species":[149],"design":[151],"patterns":[152],"bridge":[154],"multiple":[155],"paradigms":[156],"emulate":[158],"not":[160],"directly":[161],"supported":[162],"such":[163],"as":[164],"interfaces,":[165],"abstract":[166],"data":[167],"types,":[168],"ad":[169],"hoc":[170],"polymorphism,":[171],"variant":[173],"types.":[174],"Surprisingly,":[175],"variance":[178,194],"for":[179,189],"function":[180],"types":[181,184],"tuple":[183],"often":[185],"replaces":[186],"need":[188],"other":[190],"kinds":[191],"libraries":[196],"designed":[198],"functional":[202],"style.":[203]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2022,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
