{"id":"https://openalex.org/W7203613995","doi":"https://doi.org/10.1145/3828676","title":"Let It Be Optimized: Building Multi-stage Evaluators with Let-Insertion and Optimizations in Small Pieces (Functional Pearl)","display_name":"Let It Be Optimized: Building Multi-stage Evaluators with Let-Insertion and Optimizations in Small Pieces (Functional Pearl)","publication_year":2026,"publication_date":"2026-08-17","ids":{"openalex":"https://openalex.org/W7203613995","doi":"https://doi.org/10.1145/3828676"},"language":"en","primary_location":{"id":"doi:10.1145/3828676","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3828676","pdf_url":null,"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://doi.org/10.1145/3828676","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/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Guannan Wei","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0002-3150-2033","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5113669440","display_name":"Jun Tan","orcid":"https://orcid.org/0009-0001-8915-3753"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Jun Tan","raw_affiliation_strings":["Independent, Shanghai, China"],"raw_orcid":"https://orcid.org/0009-0001-8915-3753","affiliations":[{"raw_affiliation_string":"Independent, Shanghai, China","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5066466442","display_name":"Dinghong Zhong","orcid":"https://orcid.org/0009-0005-6280-1692"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Dinghong Zhong","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0009-0005-6280-1692","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.92033678,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":null,"biblio":{"volume":"10","issue":"ICFP","first_page":"100","last_page":"130"},"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.7084000110626221,"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.7084000110626221,"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.08810000121593475,"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.06069999933242798,"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/compiler","display_name":"Compiler","score":0.6334999799728394},{"id":"https://openalex.org/keywords/modular-design","display_name":"Modular design","score":0.5680999755859375},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.5335999727249146},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.51419997215271},{"id":"https://openalex.org/keywords/suite","display_name":"Suite","score":0.4668999910354614},{"id":"https://openalex.org/keywords/compiled-language","display_name":"Compiled language","score":0.45249998569488525},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4397999942302704},{"id":"https://openalex.org/keywords/dynamic-compilation","display_name":"Dynamic compilation","score":0.38760000467300415},{"id":"https://openalex.org/keywords/construct","display_name":"Construct (python library)","score":0.37560001015663147},{"id":"https://openalex.org/keywords/program-transformation","display_name":"Program transformation","score":0.36730000376701355}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8672000169754028},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8271999955177307},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6334999799728394},{"id":"https://openalex.org/C101468663","wikidata":"https://www.wikidata.org/wiki/Q1620158","display_name":"Modular design","level":2,"score":0.5680999755859375},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.5335999727249146},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.51419997215271},{"id":"https://openalex.org/C79581498","wikidata":"https://www.wikidata.org/wiki/Q1367530","display_name":"Suite","level":2,"score":0.4668999910354614},{"id":"https://openalex.org/C92966194","wikidata":"https://www.wikidata.org/wiki/Q651794","display_name":"Compiled language","level":4,"score":0.45249998569488525},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4397999942302704},{"id":"https://openalex.org/C8767382","wikidata":"https://www.wikidata.org/wiki/Q1058454","display_name":"Dynamic compilation","level":3,"score":0.38760000467300415},{"id":"https://openalex.org/C2780801425","wikidata":"https://www.wikidata.org/wiki/Q5164392","display_name":"Construct (python library)","level":2,"score":0.37560001015663147},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.36730000376701355},{"id":"https://openalex.org/C155512373","wikidata":"https://www.wikidata.org/wiki/Q287450","display_name":"Residual","level":2,"score":0.36340001225471497},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.3582000136375427},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.35179999470710754},{"id":"https://openalex.org/C195701839","wikidata":"https://www.wikidata.org/wiki/Q4008398","display_name":"Partial evaluation","level":2,"score":0.35030001401901245},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.33059999346733093},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.329800009727478},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.31209999322891235},{"id":"https://openalex.org/C77781355","wikidata":"https://www.wikidata.org/wiki/Q223335","display_name":"Structured programming","level":2,"score":0.30160000920295715},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.30140000581741333},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.29350000619888306},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.28619998693466187},{"id":"https://openalex.org/C88482812","wikidata":"https://www.wikidata.org/wiki/Q6453666","display_name":"Modular programming","level":2,"score":0.28450000286102295},{"id":"https://openalex.org/C126831891","wikidata":"https://www.wikidata.org/wiki/Q221673","display_name":"Host (biology)","level":2,"score":0.2808000147342682},{"id":"https://openalex.org/C2777027219","wikidata":"https://www.wikidata.org/wiki/Q1284190","display_name":"Constant (computer programming)","level":2,"score":0.27889999747276306},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.2754000127315521},{"id":"https://openalex.org/C2164484","wikidata":"https://www.wikidata.org/wiki/Q5170150","display_name":"Core (optical fiber)","level":2,"score":0.26339998841285706},{"id":"https://openalex.org/C2777394884","wikidata":"https://www.wikidata.org/wiki/Q762268","display_name":"Automatic programming","level":2,"score":0.2628999948501587},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.2578999996185303},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.2549000084400177},{"id":"https://openalex.org/C2779251273","wikidata":"https://www.wikidata.org/wiki/Q43436","display_name":"Pearl","level":2,"score":0.2524000108242035}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3828676","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3828676","pdf_url":null,"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/3828676","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3828676","pdf_url":null,"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":[{"display_name":"Industry, innovation and infrastructure","id":"https://metadata.un.org/sdg/9","score":0.6533209085464478}],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":75,"referenced_works":["https://openalex.org/W7558436","https://openalex.org/W1513749726","https://openalex.org/W1537143151","https://openalex.org/W1560680014","https://openalex.org/W1581327372","https://openalex.org/W1596403187","https://openalex.org/W1941632313","https://openalex.org/W1966776129","https://openalex.org/W1969661839","https://openalex.org/W1980376183","https://openalex.org/W1981830935","https://openalex.org/W1982122213","https://openalex.org/W1999336811","https://openalex.org/W2002529995","https://openalex.org/W2026667713","https://openalex.org/W2043416466","https://openalex.org/W2044417921","https://openalex.org/W2055947235","https://openalex.org/W2059416532","https://openalex.org/W2059720667","https://openalex.org/W2065748025","https://openalex.org/W2073904768","https://openalex.org/W2094455839","https://openalex.org/W2096314727","https://openalex.org/W2100111786","https://openalex.org/W2101903817","https://openalex.org/W2102435409","https://openalex.org/W2119871735","https://openalex.org/W2123092976","https://openalex.org/W2137235328","https://openalex.org/W2143609451","https://openalex.org/W2145287505","https://openalex.org/W2147578933","https://openalex.org/W2152397470","https://openalex.org/W2153131284","https://openalex.org/W2154697693","https://openalex.org/W2159591963","https://openalex.org/W2160249850","https://openalex.org/W2160268991","https://openalex.org/W2249290787","https://openalex.org/W2293168108","https://openalex.org/W2294422796","https://openalex.org/W2294771215","https://openalex.org/W2296536988","https://openalex.org/W2492256179","https://openalex.org/W2537703000","https://openalex.org/W2544085948","https://openalex.org/W2549947687","https://openalex.org/W2772486871","https://openalex.org/W2777619085","https://openalex.org/W2798482398","https://openalex.org/W2887330232","https://openalex.org/W2898037052","https://openalex.org/W2905603442","https://openalex.org/W2966177220","https://openalex.org/W2987138394","https://openalex.org/W3099525000","https://openalex.org/W3109485936","https://openalex.org/W3149432941","https://openalex.org/W4205167460","https://openalex.org/W4232444174","https://openalex.org/W4237211893","https://openalex.org/W4237428230","https://openalex.org/W4240476803","https://openalex.org/W4246781209","https://openalex.org/W4293813091","https://openalex.org/W4301270244","https://openalex.org/W4384302786","https://openalex.org/W4386317102","https://openalex.org/W4387667131","https://openalex.org/W4403222856","https://openalex.org/W4412989434","https://openalex.org/W4416397527","https://openalex.org/W7119491254","https://openalex.org/W7163548922"],"related_works":[],"abstract_inverted_index":{"Multi-stage":[0],"programming":[1,94],"lets":[2],"programmers":[3],"write":[4],"meta-programs":[5],"that":[6,60,128],"generate":[7],"efficient":[8],"code.":[9,63],"Staging":[10],"is":[11,188],"typically":[12],"realized":[13],"either":[14],"as":[15,29,110,179,190],"a":[16,30,34,117,123,159,191],"language":[17,36],"primitive":[18],"with":[19,50,58,88,105],"quotations":[20],"and":[21,25,67,108,171,183],"splices":[22],"(e.g.,":[23,37],"MetaML":[24],"its":[26],"descendants),":[27],"or":[28,84],"library":[31],"embedded":[32],"in":[33,112,142],"host":[35],"Lightweight":[38],"Modular":[39],"Staging).":[40],"Unlike":[41],"quotation-based":[42],"approaches,":[43],"practical":[44,68],"library-based":[45,113],"systems":[46],"combine":[47],"staged":[48,103,131,197],"evaluation":[49,55,104,132],"automatic":[51,106],"let-insertion":[52,107],"to":[53,80,85,174],"preserve":[54],"order,":[56],"along":[57],"optimizations":[59,109,177],"improve":[61],"residual":[62,136],"Despite":[64],"their":[65],"popularity":[66],"importance,":[69],"this":[70,96],"combination":[71],"has":[72],"received":[73],"little":[74],"semantic":[75],"treatment,":[76],"making":[77],"it":[78],"difficult":[79],"reason":[81],"about":[82],"correctness":[83],"compare":[86],"systematically":[87],"other":[89],"staging":[90,114],"paradigms.":[91],"Using":[92],"functional":[93],"techniques,":[95],"pearl":[97],"illuminates":[98],"the":[99,143,204],"operational":[100],"aspects":[101],"of":[102,125,161],"found":[111],"systems.":[115],"For":[116],"core":[118],"two-stage":[119],"language,":[120],"we":[121,157],"develop":[122],"series":[124],"definitional":[126],"interpreters":[127,139],"concisely":[129],"describe":[130],"generating":[133],"optimized,":[134],"let-inserted":[135],"programs.":[137],"The":[138],"are":[140],"written":[141],"extended":[144],"continuation-passing":[145],"style,":[146],"where":[147],"two":[148],"continuations":[149],"naturally":[150],"account":[151],"for":[152],"let-insertion.":[153],"With":[154],"minor":[155],"refactoring,":[156],"showcase":[158],"suite":[160],"optimizations,":[162],"ranging":[163],"from":[164,203],"simple":[165],"constant":[166],"propagation/folding,":[167],"common":[168],"subexpression":[169],"elimination,":[170],"dead-code":[172],"elimination":[173],"more":[175],"involved":[176],"such":[178],"beta-inlining,":[180],"partially-static":[181],"data,":[182],"code":[184],"motion.":[185],"Each":[186],"optimization":[187],"presented":[189],"small,":[192],"modular":[193],"extension":[194],"integrated":[195],"into":[196],"evaluation,":[198],"requiring":[199],"neither":[200],"additional":[201],"effort":[202],"meta-programmer,":[205],"nor":[206],"complex":[207],"post-hoc":[208],"compiler":[209],"infrastructure.":[210]},"counts_by_year":[],"updated_date":"2026-08-18T07:49:30.821534","created_date":"2026-08-18T00:00:00"}
