{"id":"https://openalex.org/W2979609173","doi":"https://doi.org/10.1145/3360552","title":"Staged abstract interpreters: fast and modular whole-program analysis via meta-programming","display_name":"Staged abstract interpreters: fast and modular whole-program analysis via meta-programming","publication_year":2019,"publication_date":"2019-10-10","ids":{"openalex":"https://openalex.org/W2979609173","doi":"https://doi.org/10.1145/3360552","mag":"2979609173"},"language":"en","primary_location":{"id":"doi:10.1145/3360552","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360552","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360552","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/3360552","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5054308182","display_name":"Guannan Wei","orcid":"https://orcid.org/0000-0002-3150-2033"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Guannan Wei","raw_affiliation_strings":["Purdue University, USA"],"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5100342251","display_name":"Yuxuan Chen","orcid":"https://orcid.org/0000-0003-1325-8388"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Yuxuan Chen","raw_affiliation_strings":["Purdue University, USA"],"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5003153354","display_name":"Tiark Rompf","orcid":"https://orcid.org/0000-0002-2068-3238"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Tiark Rompf","raw_affiliation_strings":["Purdue University, USA"],"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5054308182"],"corresponding_institution_ids":["https://openalex.org/I219193219"],"apc_list":null,"apc_paid":null,"fwci":0.867,"has_fulltext":true,"cited_by_count":19,"citation_normalized_percentile":{"value":0.81377064,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"3","issue":"OOPSLA","first_page":"1","last_page":"32"},"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.9995999932289124,"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.9995999932289124,"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.9991999864578247,"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.9972000122070312,"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/interpreter","display_name":"Interpreter","score":0.8926568031311035},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8689875602722168},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7511047720909119},{"id":"https://openalex.org/keywords/executable","display_name":"Executable","score":0.6289960145950317},{"id":"https://openalex.org/keywords/control-flow","display_name":"Control flow","score":0.5622633695602417},{"id":"https://openalex.org/keywords/abstraction","display_name":"Abstraction","score":0.504170298576355},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.4401343762874603}],"concepts":[{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.8926568031311035},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8689875602722168},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7511047720909119},{"id":"https://openalex.org/C160145156","wikidata":"https://www.wikidata.org/wiki/Q778586","display_name":"Executable","level":2,"score":0.6289960145950317},{"id":"https://openalex.org/C160191386","wikidata":"https://www.wikidata.org/wiki/Q868299","display_name":"Control flow","level":2,"score":0.5622633695602417},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.504170298576355},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.4401343762874603},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3360552","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360552","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360552","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/3360552","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360552","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360552","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/G1083356329","display_name":null,"funder_award_id":"1564207","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3747613611","display_name":null,"funder_award_id":"1553471","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3914184041","display_name":null,"funder_award_id":"1553471, 1564207, 1918483","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6500779413","display_name":null,"funder_award_id":"DE-SC001805","funder_id":"https://openalex.org/F4320306084","funder_display_name":"U.S. Department of Energy"},{"id":"https://openalex.org/G7364598548","display_name":null,"funder_award_id":"DE-SC0018050","funder_id":"https://openalex.org/F4320306084","funder_display_name":"U.S. Department of Energy"},{"id":"https://openalex.org/G787217599","display_name":"FMitF: Track I: Symbolic Reasoning with Graph Networks","funder_award_id":"1918483","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/F4320308737","display_name":"Facebook","ror":"https://ror.org/01zbnvs85"},{"id":"https://openalex.org/F4320309327","display_name":"Google","ror":"https://ror.org/00njsd438"},{"id":"https://openalex.org/F4320316785","display_name":"VMware","ror":null}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2979609173.pdf","grobid_xml":"https://content.openalex.org/works/W2979609173.grobid-xml"},"referenced_works_count":79,"referenced_works":["https://openalex.org/W52562630","https://openalex.org/W301967743","https://openalex.org/W1494768888","https://openalex.org/W1517960827","https://openalex.org/W1528193315","https://openalex.org/W1556604985","https://openalex.org/W1608933122","https://openalex.org/W1974895492","https://openalex.org/W1981580304","https://openalex.org/W1986693746","https://openalex.org/W1993335798","https://openalex.org/W1997143185","https://openalex.org/W2013885073","https://openalex.org/W2014359987","https://openalex.org/W2016567396","https://openalex.org/W2037984920","https://openalex.org/W2043100293","https://openalex.org/W2045424609","https://openalex.org/W2046656770","https://openalex.org/W2059019165","https://openalex.org/W2060205259","https://openalex.org/W2070262175","https://openalex.org/W2073904768","https://openalex.org/W2081276788","https://openalex.org/W2083686643","https://openalex.org/W2088840230","https://openalex.org/W2096314727","https://openalex.org/W2098022036","https://openalex.org/W2102435409","https://openalex.org/W2104527179","https://openalex.org/W2105443946","https://openalex.org/W2106647551","https://openalex.org/W2110507526","https://openalex.org/W2121309409","https://openalex.org/W2123092976","https://openalex.org/W2127501412","https://openalex.org/W2131021047","https://openalex.org/W2135641942","https://openalex.org/W2141576692","https://openalex.org/W2143609451","https://openalex.org/W2143932292","https://openalex.org/W2151030513","https://openalex.org/W2154697693","https://openalex.org/W2161550557","https://openalex.org/W2170466119","https://openalex.org/W2209684412","https://openalex.org/W2247694024","https://openalex.org/W2282057970","https://openalex.org/W2492256179","https://openalex.org/W2517799069","https://openalex.org/W2562640456","https://openalex.org/W2566919497","https://openalex.org/W2572804059","https://openalex.org/W2621225554","https://openalex.org/W2622559577","https://openalex.org/W2738478951","https://openalex.org/W2752261840","https://openalex.org/W2761495671","https://openalex.org/W2777619085","https://openalex.org/W2780061171","https://openalex.org/W2798416929","https://openalex.org/W2886090648","https://openalex.org/W2887637582","https://openalex.org/W2906718832","https://openalex.org/W2952100912","https://openalex.org/W2953089209","https://openalex.org/W3100486894","https://openalex.org/W3101981126","https://openalex.org/W3103744781","https://openalex.org/W3123143760","https://openalex.org/W3147482974","https://openalex.org/W3169777496","https://openalex.org/W4206770190","https://openalex.org/W4235832836","https://openalex.org/W4240476803","https://openalex.org/W4246781209","https://openalex.org/W4249124297","https://openalex.org/W4250199140","https://openalex.org/W4301270244"],"related_works":["https://openalex.org/W4200453963","https://openalex.org/W2359835790","https://openalex.org/W2391715591","https://openalex.org/W2122403474","https://openalex.org/W2171750108","https://openalex.org/W1754116331","https://openalex.org/W4384302888","https://openalex.org/W141487401","https://openalex.org/W2111825754","https://openalex.org/W2135849267"],"abstract_inverted_index":{"It":[0,34],"is":[1,8,27,35,44,166,180],"well":[2],"known":[3,28,39],"that":[4,22,40,84,176],"a":[5,9,15,45,57,81,100,107,140,149,204,218],"staged":[6,102,141,150],"interpreter":[7,13,43,50,104,109,126],"compiler:":[10],"specializing":[11],"an":[12,19,41,49,73,136,144,154,238],"to":[14,51,72,94,184,213],"given":[16],"program":[17,46],"produces":[18,56],"equivalent":[20],"executable":[21],"runs":[23],"faster.":[24],"This":[25],"connection":[26],"as":[29,135],"the":[30,87,124,160,169,227,232],"first":[31,88],"Futamura":[32,89],"projection.":[33],"even":[36],"more":[37],"widely":[38],"abstract":[42,54,74,95,103,146,151,178,210],"analyzer:":[47],"tweaking":[48],"run":[52],"on":[53,106,231],"domains":[55],"sound":[58,101],"static":[59,186],"analysis.":[60,222],"What":[61],"happens":[62],"when":[63],"we":[64,79],"combine":[65],"these":[66,122,163],"two":[67],"ideas,":[68],"and":[69,114,182,194,208,217],"apply":[70],"specialization":[71],"interpreter?":[75],"In":[76],"this":[77],"paper,":[78],"present":[80],"unifying":[82],"framework":[83],"naturally":[85],"extends":[86],"projection":[90],"from":[91],"concrete":[92,138,142],"interpreters":[93,179],"interpreters.":[96],"Our":[97],"approach":[98],"derives":[99],"based":[105],"generic":[108,125],"with":[110,206,243],"type-level":[111],"binding-time":[112],"abstractions":[113],"monadic":[115],"abstractions.":[116],"By":[117],"using":[118],"different":[119],"instantiations":[120],"of":[121,132,156,162,229,240],"abstractions,":[123],"can":[127],"flexibly":[128],"behave":[129],"in":[130,168],"one":[131],"four":[133],"modes:":[134],"unstaged":[137,145],"interpreter,":[139,143,147],"or":[148],"interpreter.":[152],"As":[153],"example":[155],"abstraction":[157,164],"without":[158,195],"regret,":[159],"overhead":[161],"layers":[165],"eliminated":[167],"generated":[170],"code":[171],"after":[172],"staging.":[173],"We":[174,198,223],"show":[175],"staging":[177,230,244],"practical":[181],"useful":[183],"optimize":[185],"analysis,":[187],"all":[188],"while":[189],"requiring":[190],"less":[191],"engineering":[192],"effort":[193],"compromising":[196],"soundness.":[197],"conduct":[199],"three":[200],"case":[201],"studies,":[202],"including":[203],"comparison":[205],"Boucher":[207],"Feeley\u2019s":[209],"compilation,":[211],"applications":[212],"various":[214],"control-flow":[215,246],"analyses,":[216],"demonstration":[219],"for":[220,245],"modular":[221],"also":[224],"empirically":[225],"evaluate":[226],"effect":[228],"execution":[233],"time.":[234],"The":[235],"experiment":[236],"shows":[237],"order":[239],"magnitude":[241],"speedup":[242],"analyses.":[247]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":7},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":1}],"updated_date":"2026-04-10T15:06:20.359241","created_date":"2025-10-10T00:00:00"}
