{"id":"https://openalex.org/W4387674307","doi":"https://doi.org/10.1145/3622853","title":"TASTyTruffle: Just-in-Time Specialization of Parametric Polymorphism","display_name":"TASTyTruffle: Just-in-Time Specialization of Parametric Polymorphism","publication_year":2023,"publication_date":"2023-10-16","ids":{"openalex":"https://openalex.org/W4387674307","doi":"https://doi.org/10.1145/3622853"},"language":"en","primary_location":{"id":"doi:10.1145/3622853","is_oa":true,"landing_page_url":"http://dx.doi.org/10.1145/3622853","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622853","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3622853","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5027564486","display_name":"Matt D'Souza","orcid":"https://orcid.org/0009-0001-5904-5217"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"Matt D'Souza","raw_affiliation_strings":["University of Waterloo, Waterloo, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5022424250","display_name":"James You","orcid":"https://orcid.org/0009-0000-5906-0305"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"James You","raw_affiliation_strings":["University of Waterloo, Waterloo, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5039616179","display_name":"Ond\u0159ej Lhot\u00e1k","orcid":"https://orcid.org/0000-0001-9066-1889"},"institutions":[{"id":"https://openalex.org/I151746483","display_name":"University of Waterloo","ror":"https://ror.org/01aff2v68","country_code":"CA","type":"education","lineage":["https://openalex.org/I151746483"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ond\u0159ej Lhot\u00e1k","raw_affiliation_strings":["University of Waterloo, Waterloo, Canada"],"affiliations":[{"raw_affiliation_string":"University of Waterloo, Waterloo, Canada","institution_ids":["https://openalex.org/I151746483"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5043562961","display_name":"Aleksandar Prokopec","orcid":"https://orcid.org/0000-0003-0260-2729"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Aleksandar Prokopec","raw_affiliation_strings":["Oracle Labs, Zurich, Switzerland"],"affiliations":[{"raw_affiliation_string":"Oracle Labs, Zurich, Switzerland","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5027564486"],"corresponding_institution_ids":["https://openalex.org/I151746483"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.1348812,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"7","issue":"OOPSLA2","first_page":"1561","last_page":"1588"},"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.9991000294685364,"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.9991000294685364,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9977999925613403,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T11424","display_name":"Security and Verification in Computing","score":0.9675999879837036,"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/computer-science","display_name":"Computer science","score":0.8664635419845581},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.8354078531265259},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7369152307510376},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5936670303344727},{"id":"https://openalex.org/keywords/intermediate-language","display_name":"Intermediate language","score":0.48316138982772827},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.47660985589027405},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.4549753665924072},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.4497350752353668},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.426778107881546},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.4155421257019043},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4123954176902771},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.13808482885360718},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.12660586833953857}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8664635419845581},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.8354078531265259},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7369152307510376},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5936670303344727},{"id":"https://openalex.org/C77660490","wikidata":"https://www.wikidata.org/wiki/Q244916","display_name":"Intermediate language","level":3,"score":0.48316138982772827},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.47660985589027405},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.4549753665924072},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.4497350752353668},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.426778107881546},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.4155421257019043},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4123954176902771},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.13808482885360718},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12660586833953857},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3622853","is_oa":true,"landing_page_url":"http://dx.doi.org/10.1145/3622853","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622853","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3622853","is_oa":true,"landing_page_url":"http://dx.doi.org/10.1145/3622853","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3622853","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G2165548363","display_name":null,"funder_award_id":"Canada","funder_id":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada"}],"funders":[{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4387674307.pdf","grobid_xml":"https://content.openalex.org/works/W4387674307.grobid-xml"},"referenced_works_count":25,"referenced_works":["https://openalex.org/W186299878","https://openalex.org/W1496155669","https://openalex.org/W2029360780","https://openalex.org/W2035709547","https://openalex.org/W2048132113","https://openalex.org/W2091228796","https://openalex.org/W2094269821","https://openalex.org/W2100111786","https://openalex.org/W2119976524","https://openalex.org/W2127382014","https://openalex.org/W2130235146","https://openalex.org/W2137417304","https://openalex.org/W2160756430","https://openalex.org/W2164296674","https://openalex.org/W2572804059","https://openalex.org/W2731881248","https://openalex.org/W2761493120","https://openalex.org/W2772827996","https://openalex.org/W2793681106","https://openalex.org/W2921165669","https://openalex.org/W3160847527","https://openalex.org/W3202074821","https://openalex.org/W4242640264","https://openalex.org/W4255255387","https://openalex.org/W6912934674"],"related_works":["https://openalex.org/W1987830983","https://openalex.org/W4244564259","https://openalex.org/W3141365533","https://openalex.org/W1726238843","https://openalex.org/W4237270226","https://openalex.org/W4379521304","https://openalex.org/W2087647198","https://openalex.org/W2135265328","https://openalex.org/W2081472149","https://openalex.org/W3123828280"],"abstract_inverted_index":{"Parametric":[0],"polymorphism":[1,23],"enables":[2,197],"programmers":[3],"to":[4,20,61,103,114,141,199],"express":[5],"algorithms":[6],"independently":[7],"of":[8,11,73,79,148,175],"the":[9,74,189],"types":[10,93,116,140],"values":[12],"that":[13,47,54,120,151,204],"they":[14],"operate":[15],"on.":[16],"The":[17,191],"approach":[18],"used":[19,57,182],"implement":[21,104],"parametric":[22],"can":[24,121,152],"have":[25],"important":[26],"performance":[27],"implications.":[28],"One":[29],"popular":[30],"approach,":[31],"erasure,":[32],"uses":[33,138],"a":[34,71,88,172],"uniform":[35],"representation":[36,90],"for":[37,70,133],"generic":[38,63,92,105,134,143,149,179],"data,":[39],"which":[40],"entails":[41],"primitive":[42],"boxing":[43],"and":[44,155],"other":[45],"indirections":[46],"harm":[48],"performance.":[49],"Erasure":[50],"destroys":[51],"type":[52,99,193],"information":[53,100,194],"could":[55,205],"be":[56,122,153,207],"by":[58,158],"language":[59],"implementations":[60,170],"optimize":[62],"code.":[64],"We":[65],"present":[66],"TASTyTruffle,":[67],"an":[68],"implementation":[69],"subset":[72],"Scala":[75],"programming":[76],"language.":[77],"Instead":[78],"JVM":[80,169,211],"bytecode,":[81],"TASTyTruffle":[82,102,113,128,136,164,186,198],"interprets":[83],"Scala's":[84],"TASTy":[85,196],"intermediate":[86],"representation,":[87],"typed":[89],"wherein":[91],"are":[94],"not":[95,206],"erased.":[96],"TASTy's":[97],"precise":[98,192],"empowers":[101],"code":[106,150,180],"more":[107],"effectively.":[108],"In":[109],"particular,":[110],"it":[111],"allows":[112],"reify":[115],"as":[117],"run-time":[118],"objects":[119],"passed":[123],"around.":[124],"Using":[125],"reified":[126,139],"types,":[127,185],"supports":[129],"heterogeneous":[130],"box-free":[131],"representations":[132],"values.":[135],"also":[137],"specialize":[142],"code,":[144],"producing":[145],"monomorphic":[146],"copies":[147],"easily":[154],"reliably":[156],"optimized":[157],"its":[159],"just-in-time":[160],"(JIT)":[161],"compiler.":[162],"Empirically,":[163],"is":[165,181],"competitive":[166],"with":[167,183,209],"standard":[168],"on":[171],"small":[173],"set":[174],"benchmark":[176],"programs;":[177],"when":[178],"multiple":[184],"consistently":[187],"outperforms":[188],"JVM.":[190],"in":[195],"find":[200],"additional":[201],"optimization":[202],"opportunities":[203],"uncovered":[208],"erased":[210],"bytecode.":[212]},"counts_by_year":[],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
