{"id":"https://openalex.org/W3110362426","doi":"https://doi.org/10.1145/3428235","title":"Dynamic dispatch of context-sensitive optimizations","display_name":"Dynamic dispatch of context-sensitive optimizations","publication_year":2020,"publication_date":"2020-11-13","ids":{"openalex":"https://openalex.org/W3110362426","doi":"https://doi.org/10.1145/3428235","mag":"3110362426"},"language":"en","primary_location":{"id":"doi:10.1145/3428235","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428235","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428235","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/3428235","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5043645877","display_name":"Gabriel Poesia","orcid":null},"institutions":[{"id":"https://openalex.org/I97018004","display_name":"Stanford University","ror":"https://ror.org/00f54p054","country_code":"US","type":"education","lineage":["https://openalex.org/I97018004"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Gabriel Poesia","raw_affiliation_strings":["Stanford University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Stanford University, USA","institution_ids":["https://openalex.org/I97018004"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078149140","display_name":"Fernando Magno Quint\u00e3o Pereira","orcid":"https://orcid.org/0000-0002-0375-1657"},"institutions":[{"id":"https://openalex.org/I110200422","display_name":"Universidade Federal de Minas Gerais","ror":"https://ror.org/0176yjw32","country_code":"BR","type":"education","lineage":["https://openalex.org/I110200422"]}],"countries":["BR"],"is_corresponding":false,"raw_author_name":"Fernando Magno Quint\u00e3o Pereira","raw_affiliation_strings":["Federal University of Minas Gerais, Brazil"],"raw_orcid":"https://orcid.org/0000-0002-0375-1657","affiliations":[{"raw_affiliation_string":"Federal University of Minas Gerais, Brazil","institution_ids":["https://openalex.org/I110200422"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.193,"has_fulltext":true,"cited_by_count":7,"citation_normalized_percentile":{"value":0.81103345,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":"4","issue":"OOPSLA","first_page":"1","last_page":"28"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9991999864578247,"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"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9991999864578247,"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"}},{"id":"https://openalex.org/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9980000257492065,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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.9972000122070312,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7807756662368774},{"id":"https://openalex.org/keywords/cloning","display_name":"Cloning (programming)","score":0.7401106953620911},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.6300687193870544},{"id":"https://openalex.org/keywords/binary-number","display_name":"Binary number","score":0.5258551239967346},{"id":"https://openalex.org/keywords/state","display_name":"State (computer science)","score":0.5151430368423462},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4655129909515381},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4540759027004242},{"id":"https://openalex.org/keywords/program-optimization","display_name":"Program optimization","score":0.44993355870246887},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4430009722709656},{"id":"https://openalex.org/keywords/constant","display_name":"Constant (computer programming)","score":0.43458643555641174},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.35524696111679077},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.16678419709205627},{"id":"https://openalex.org/keywords/arithmetic","display_name":"Arithmetic","score":0.09844952821731567}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7807756662368774},{"id":"https://openalex.org/C121050878","wikidata":"https://www.wikidata.org/wiki/Q5135020","display_name":"Cloning (programming)","level":2,"score":0.7401106953620911},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.6300687193870544},{"id":"https://openalex.org/C48372109","wikidata":"https://www.wikidata.org/wiki/Q3913","display_name":"Binary number","level":2,"score":0.5258551239967346},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.5151430368423462},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4655129909515381},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4540759027004242},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.44993355870246887},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4430009722709656},{"id":"https://openalex.org/C2777027219","wikidata":"https://www.wikidata.org/wiki/Q1284190","display_name":"Constant (computer programming)","level":2,"score":0.43458643555641174},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.35524696111679077},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.16678419709205627},{"id":"https://openalex.org/C94375191","wikidata":"https://www.wikidata.org/wiki/Q11205","display_name":"Arithmetic","level":1,"score":0.09844952821731567},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.0},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3428235","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428235","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428235","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"},{"id":"pmh:oai:repositorio.ufmg.br:1843/JCES-AVKLSP","is_oa":true,"landing_page_url":"http://hdl.handle.net/1843/JCES-AVKLSP","pdf_url":null,"source":{"id":"https://openalex.org/S4306402641","display_name":"LA Referencia (Red Federada de Repositorios Institucionales de Publicaciones Cient\u00edficas)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I4383465926","host_organization_name":"LA Referencia","host_organization_lineage":["https://openalex.org/I4383465926"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"instacron:UFMG","raw_type":"info:eu-repo/semantics/masterThesis"},{"id":"pmh:oai:americanae.aecid.es:2138116","is_oa":true,"landing_page_url":"http://americanae.aecid.es/americanae/es/registros/registro.do?tipoRegistro=MTD&idBib=2138116","pdf_url":null,"source":{"id":"https://openalex.org/S4306400786","display_name":"Americanae (AECID Library)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"reponame:Reposit\u00f3rio Institucional da UFMG","raw_type":"info:eu-repo/semantics/masterThesis"}],"best_oa_location":{"id":"doi:10.1145/3428235","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428235","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428235","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/G121135710","display_name":null,"funder_award_id":"406377/2018-9","funder_id":"https://openalex.org/F4320322980","funder_display_name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado de Minas Gerais"},{"id":"https://openalex.org/G6661362747","display_name":null,"funder_award_id":"406377/2018-9","funder_id":"https://openalex.org/F4320322025","funder_display_name":"Conselho Nacional de Desenvolvimento Cient\u00edfico e Tecnol\u00f3gico"}],"funders":[{"id":"https://openalex.org/F4320322025","display_name":"Conselho Nacional de Desenvolvimento Cient\u00edfico e Tecnol\u00f3gico","ror":"https://ror.org/03swz6y49"},{"id":"https://openalex.org/F4320322980","display_name":"Funda\u00e7\u00e3o de Amparo \u00e0 Pesquisa do Estado de Minas Gerais","ror":"https://ror.org/00nc55f03"},{"id":"https://openalex.org/F4320324369","display_name":"Universidade Federal de Minas Gerais","ror":"https://ror.org/0176yjw32"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3110362426.pdf","grobid_xml":"https://content.openalex.org/works/W3110362426.grobid-xml"},"referenced_works_count":42,"referenced_works":["https://openalex.org/W59486908","https://openalex.org/W106036673","https://openalex.org/W563453116","https://openalex.org/W1553894716","https://openalex.org/W1557543533","https://openalex.org/W1949003947","https://openalex.org/W1971014792","https://openalex.org/W1977606188","https://openalex.org/W1996146601","https://openalex.org/W1997154986","https://openalex.org/W1997981086","https://openalex.org/W1999517284","https://openalex.org/W1999926936","https://openalex.org/W2001784723","https://openalex.org/W2017971446","https://openalex.org/W2040825319","https://openalex.org/W2093080079","https://openalex.org/W2111947818","https://openalex.org/W2135992106","https://openalex.org/W2136269217","https://openalex.org/W2140147547","https://openalex.org/W2141293928","https://openalex.org/W2142019528","https://openalex.org/W2158600037","https://openalex.org/W2171240827","https://openalex.org/W2294292201","https://openalex.org/W2532319962","https://openalex.org/W2553375745","https://openalex.org/W2626356917","https://openalex.org/W2761620348","https://openalex.org/W2761799536","https://openalex.org/W2796645376","https://openalex.org/W2889130485","https://openalex.org/W2900044545","https://openalex.org/W2978069623","https://openalex.org/W3009007914","https://openalex.org/W3030148664","https://openalex.org/W3106774398","https://openalex.org/W4205239790","https://openalex.org/W4232181514","https://openalex.org/W4251521744","https://openalex.org/W4253459289"],"related_works":["https://openalex.org/W2362782207","https://openalex.org/W2109007429","https://openalex.org/W2030283002","https://openalex.org/W1987653914","https://openalex.org/W4206908088","https://openalex.org/W2994004883","https://openalex.org/W2388174443","https://openalex.org/W2089054857","https://openalex.org/W1576765900","https://openalex.org/W4251499038"],"abstract_inverted_index":{"Academia":[0],"has":[1],"spent":[2],"much":[3],"effort":[4],"into":[5],"making":[6],"context-sensitive":[7,17,70,92,136],"analyses":[8],"practical,":[9,27],"with":[10,158],"great":[11],"profit.":[12],"However,":[13],"the":[14,39,45,108,153],"implementation":[15],"of":[16,41,110,126,183],"optimizations":[18],",":[19],"in":[20,44,95,116,121,139,178],"contrast":[21],"to":[22,29,56,67,85,134,174],"analyses,":[23],"is":[24],"still":[25],"not":[26,100],"due":[28],"code-size":[30],"explosion.":[31],"This":[32,80],"growth":[33],"happens":[34],"because":[35],"current":[36],"technology":[37],"requires":[38],"cloning":[40,73,147],"full":[42,146],"paths":[43],"Calling":[46],"Context":[47],"Tree.":[48],"In":[49],"this":[50,57],"paper,":[51],"we":[52,128,156],"present":[53],"a":[54,124,181],"solution":[55],"problem.":[58],"We":[59,106],"combine":[60],"finite":[61],"state":[62,132,160],"machines":[63,133],"and":[64,118],"dynamic":[65],"dispatching":[66],"allow":[68],"fully":[69],"specialization":[71],"while":[72],"only":[74],"functions":[75],"that":[76,98,155],"are":[77,148],"effectively":[78],"optimized.":[79],"technique":[81],"makes":[82],"it":[83,115,120],"possible":[84],"apply":[86],"very":[87],"liberal":[88],"optimizations,":[89],"such":[90],"as":[91],"constant":[93,137],"propagation,":[94],"large":[96],"programs\u2014something":[97],"could":[99],"have":[101,129],"been":[102],"easily":[103],"done":[104],"before.":[105],"demonstrate":[107],"viability":[109],"our":[111,131,159,167],"idea":[112],"by":[113,144],"formalizing":[114],"Prolog,":[117],"implementing":[119],"LLVM.":[122,140],"As":[123],"proof":[125],"concept,":[127],"used":[130],"implement":[135],"propagation":[138],"The":[141],"binaries":[142,154],"produced":[143],"traditional":[145],"2.63":[149],"times":[150],"larger":[151],"than":[152],"generate":[157],"machines.":[161],"When":[162],"applied":[163],"on":[164],"Mozilla":[165],"Firefox,":[166],"optimization":[168],"increases":[169],"binary":[170,182],"size":[171],"from":[172],"7.2MB":[173],"9.2MB.":[175],"Full":[176],"cloning,":[177],"contrast,":[179],"yields":[180],"34MB.":[184]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2020,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
