{"id":"https://openalex.org/W2885244083","doi":"https://doi.org/10.1145/3236793","title":"Casts and costs: harmonizing safety and performance in gradual typing","display_name":"Casts and costs: harmonizing safety and performance in gradual typing","publication_year":2018,"publication_date":"2018-07-30","ids":{"openalex":"https://openalex.org/W2885244083","doi":"https://doi.org/10.1145/3236793","mag":"2885244083"},"language":"en","primary_location":{"id":"doi:10.1145/3236793","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236793","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236793","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/3236793","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5026003281","display_name":"John Peter Campora","orcid":"https://orcid.org/0000-0002-5301-9552"},"institutions":[{"id":"https://openalex.org/I79516672","display_name":"University of Louisiana at Lafayette","ror":"https://ror.org/01x8rc503","country_code":"US","type":"education","lineage":["https://openalex.org/I2799628689","https://openalex.org/I79516672"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"John Peter Campora","raw_affiliation_strings":["University of Louisiana at Lafayette, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Louisiana at Lafayette, USA","institution_ids":["https://openalex.org/I79516672"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5100321009","display_name":"Sheng Chen","orcid":"https://orcid.org/0000-0003-1735-0704"},"institutions":[{"id":"https://openalex.org/I79516672","display_name":"University of Louisiana at Lafayette","ror":"https://ror.org/01x8rc503","country_code":"US","type":"education","lineage":["https://openalex.org/I2799628689","https://openalex.org/I79516672"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sheng Chen","raw_affiliation_strings":["University of Louisiana at Lafayette, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Louisiana at Lafayette, USA","institution_ids":["https://openalex.org/I79516672"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5057741632","display_name":"Eric Walkingshaw","orcid":"https://orcid.org/0000-0003-1214-0791"},"institutions":[{"id":"https://openalex.org/I131249849","display_name":"Oregon State University","ror":"https://ror.org/00ysfqy60","country_code":"US","type":"education","lineage":["https://openalex.org/I131249849"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Eric Walkingshaw","raw_affiliation_strings":["Oregon State University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Oregon State University, USA","institution_ids":["https://openalex.org/I131249849"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.4248,"has_fulltext":true,"cited_by_count":11,"citation_normalized_percentile":{"value":0.9207269,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":"2","issue":"ICFP","first_page":"1","last_page":"30"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9975000023841858,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9929999709129333,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"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.8451099991798401},{"id":"https://openalex.org/keywords/debugging","display_name":"Debugging","score":0.7468122243881226},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.6963069438934326},{"id":"https://openalex.org/keywords/typing","display_name":"Typing","score":0.6036840677261353},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.5961464047431946},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5852521061897278},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.5501238107681274},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5137854218482971},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.4846971035003662},{"id":"https://openalex.org/keywords/annotation","display_name":"Annotation","score":0.4269344210624695},{"id":"https://openalex.org/keywords/program-analysis","display_name":"Program analysis","score":0.4114438593387604},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.16414085030555725}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8451099991798401},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.7468122243881226},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.6963069438934326},{"id":"https://openalex.org/C2781209916","wikidata":"https://www.wikidata.org/wiki/Q3215756","display_name":"Typing","level":2,"score":0.6036840677261353},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.5961464047431946},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5852521061897278},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.5501238107681274},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5137854218482971},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.4846971035003662},{"id":"https://openalex.org/C2776321320","wikidata":"https://www.wikidata.org/wiki/Q857525","display_name":"Annotation","level":2,"score":0.4269344210624695},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.4114438593387604},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.16414085030555725},{"id":"https://openalex.org/C28490314","wikidata":"https://www.wikidata.org/wiki/Q189436","display_name":"Speech recognition","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3236793","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236793","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236793","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/3236793","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3236793","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3236793","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/G439284566","display_name":null,"funder_award_id":"FA8750-16-C-0044","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G4713059963","display_name":null,"funder_award_id":"FA8750","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G8596693269","display_name":"CAREER: Making Type Error Debugging Work","funder_award_id":"1750886","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/F4320307943","display_name":"Raytheon Company","ror":"https://ror.org/0354t7b78"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"},{"id":"https://openalex.org/F4320338294","display_name":"Air Force Research Laboratory","ror":"https://ror.org/02e2egq70"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2885244083.pdf","grobid_xml":"https://content.openalex.org/works/W2885244083.grobid-xml"},"referenced_works_count":33,"referenced_works":["https://openalex.org/W912214939","https://openalex.org/W1230660382","https://openalex.org/W1496853143","https://openalex.org/W1970075481","https://openalex.org/W2016954568","https://openalex.org/W2025581658","https://openalex.org/W2052973434","https://openalex.org/W2070088936","https://openalex.org/W2094647969","https://openalex.org/W2102473657","https://openalex.org/W2106009651","https://openalex.org/W2106799975","https://openalex.org/W2113556560","https://openalex.org/W2115346618","https://openalex.org/W2163533732","https://openalex.org/W2295283668","https://openalex.org/W2295415424","https://openalex.org/W2514317887","https://openalex.org/W2547267640","https://openalex.org/W2553615676","https://openalex.org/W2561856298","https://openalex.org/W2565334366","https://openalex.org/W2621005330","https://openalex.org/W2760972573","https://openalex.org/W2762605937","https://openalex.org/W2764150781","https://openalex.org/W2776911292","https://openalex.org/W2899089688","https://openalex.org/W3004472005","https://openalex.org/W3009600509","https://openalex.org/W3014043685","https://openalex.org/W3137596000","https://openalex.org/W4229717394"],"related_works":["https://openalex.org/W2867457158","https://openalex.org/W4297908618","https://openalex.org/W2765641823","https://openalex.org/W3111646971","https://openalex.org/W2895825088","https://openalex.org/W4387793661","https://openalex.org/W3186878187","https://openalex.org/W1843794072","https://openalex.org/W1531033207","https://openalex.org/W2354385412"],"abstract_inverted_index":{"Gradual":[0],"typing":[1,10,22,52,192],"allows":[2],"programmers":[3,165],"to":[4,42,58,99,211],"use":[5,208],"both":[6],"static":[7,28,112,232],"and":[8,29,44,46,146,160,168,213],"dynamic":[9,30],"in":[11,123,143,181],"a":[12,16,59,66,71,111,124,129,144,148,183],"single":[13],"program.":[14],"However,":[15],"well-known":[17],"problem":[18],"with":[19],"sound":[20],"gradual":[21,51],"is":[23,85,98],"that":[24,73,115,162,205,218],"the":[25,89,95,102,118,152,170,188,220,227],"interactions":[26,122],"between":[27],"code":[31],"can":[32,74,163,207],"cause":[33],"significant":[34],"performance":[35,38,171,189,221],"degradation.":[36],"These":[37],"pitfalls":[39],"are":[40],"hard":[41],"predict":[43],"resolve,":[45],"discourage":[47],"users":[48],"from":[49],"using":[50],"features.":[53],"For":[54],"example,":[55],"when":[56],"migrating":[57],"more":[60,79],"statically":[61,186],"typed":[62,126,174],"program,":[63,127,145],"often":[64],"adding":[65,78],"type":[67,141,216],"annotation":[68],"will":[69],"trigger":[70],"slowdown":[72],"be":[75,93],"resolved":[76],"by":[77,231],"annotations":[80,91],"elsewhere,":[81],"but":[82],"since":[83],"it":[84],"not":[86],"clear":[87],"where":[88],"additional":[90],"must":[92],"added,":[94],"easier":[96],"solution":[97],"simply":[100],"remove":[101],"annotation.":[103],"To":[104],"address":[105],"these":[106,223],"problems,":[107],"we":[108],"develop:":[109],"(1)":[110],"cost":[113],"semantics":[114],"accurately":[116,212],"predicts":[117],"overhead":[119],"of":[120,139,154,172,190,222],"static-dynamic":[121],"gradually":[125,173],"(2)":[128],"technique":[130],"for":[131,136,150,185,194],"efficiently":[132,214],"inferring":[133],"such":[134],"costs":[135],"all":[137],"combinations":[138],"inferrable":[140],"assignments":[142,217],"(3)":[147],"method":[149],"translating":[151],"results":[153],"this":[155,209],"analysis":[156,210],"into":[157],"specific":[158],"recommendations":[159],"explanations":[161],"help":[164],"understand,":[166],"debug,":[167],"optimize":[169,219],"programs.":[175,197],"We":[176],"have":[177],"implemented":[178],"our":[179],"approach":[180],"Herder,":[182],"tool":[184],"analyzing":[187],"different":[191],"configurations":[193],"Reticulated":[195],"Python":[196,202],"An":[198],"evaluation":[199],"on":[200],"15":[201],"programs":[203,224],"shows":[204],"Herder":[206],"recommend":[215],"without":[225],"sacrificing":[226],"safety":[228],"guarantees":[229],"provided":[230],"typing.":[233]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":3},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1},{"year":2021,"cited_by_count":2},{"year":2020,"cited_by_count":3}],"updated_date":"2026-08-01T09:00:35.917206","created_date":"2025-10-10T00:00:00"}
