{"id":"https://openalex.org/W4401596910","doi":"https://doi.org/10.1145/3674649","title":"Staged Compilation with Module Functors","display_name":"Staged Compilation with Module Functors","publication_year":2024,"publication_date":"2024-08-15","ids":{"openalex":"https://openalex.org/W4401596910","doi":"https://doi.org/10.1145/3674649"},"language":"en","primary_location":{"id":"doi:10.1145/3674649","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3674649","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/3674649","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5076885890","display_name":"Tsung-Ju Chiang","orcid":"https://orcid.org/0000-0003-1252-6424"},"institutions":[{"id":"https://openalex.org/I185261750","display_name":"University of Toronto","ror":"https://ror.org/03dbr7087","country_code":"CA","type":"education","lineage":["https://openalex.org/I185261750"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Tsung-Ju Chiang","raw_affiliation_strings":["University of Toronto, Toronto, Canada"],"raw_orcid":"https://orcid.org/0000-0003-1252-6424","affiliations":[{"raw_affiliation_string":"University of Toronto, Toronto, Canada","institution_ids":["https://openalex.org/I185261750"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5020576379","display_name":"Jeremy Yallop","orcid":"https://orcid.org/0009-0002-1650-6340"},"institutions":[{"id":"https://openalex.org/I241749","display_name":"University of Cambridge","ror":"https://ror.org/013meh722","country_code":"GB","type":"education","lineage":["https://openalex.org/I241749"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Jeremy Yallop","raw_affiliation_strings":["University of Cambridge, Cambridge, United Kingdom"],"raw_orcid":"https://orcid.org/0009-0002-1650-6340","affiliations":[{"raw_affiliation_string":"University of Cambridge, Cambridge, United Kingdom","institution_ids":["https://openalex.org/I241749"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5034258018","display_name":"Leo White","orcid":"https://orcid.org/0009-0003-7046-3035"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Leo White","raw_affiliation_strings":["Jane Street Capital, London, United Kingdom"],"raw_orcid":"https://orcid.org/0009-0003-7046-3035","affiliations":[{"raw_affiliation_string":"Jane Street Capital, London, United Kingdom","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5008249278","display_name":"Ningning Xie","orcid":"https://orcid.org/0000-0002-5961-1493"},"institutions":[{"id":"https://openalex.org/I185261750","display_name":"University of Toronto","ror":"https://ror.org/03dbr7087","country_code":"CA","type":"education","lineage":["https://openalex.org/I185261750"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Ningning Xie","raw_affiliation_strings":["University of Toronto, Toronto, Canada"],"raw_orcid":"https://orcid.org/0000-0002-5961-1493","affiliations":[{"raw_affiliation_string":"University of Toronto, Toronto, Canada","institution_ids":["https://openalex.org/I185261750"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.5273,"has_fulltext":false,"cited_by_count":5,"citation_normalized_percentile":{"value":0.85367441,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":96,"max":99},"biblio":{"volume":"8","issue":"ICFP","first_page":"693","last_page":"727"},"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.9994999766349792,"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.9994999766349792,"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/T10317","display_name":"Advanced Database Systems and Queries","score":0.9950000047683716,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/T11010","display_name":"Logic, Reasoning, and Knowledge","score":0.9896000027656555,"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/functor","display_name":"Functor","score":0.7323260307312012},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5817974209785461},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.5360826253890991},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.21933996677398682},{"id":"https://openalex.org/keywords/pure-mathematics","display_name":"Pure mathematics","score":0.11948680877685547}],"concepts":[{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.7323260307312012},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5817974209785461},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.5360826253890991},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.21933996677398682},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","level":1,"score":0.11948680877685547}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3674649","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3674649","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/3674649","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3674649","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":"Quality Education","score":0.6899999976158142,"id":"https://metadata.un.org/sdg/4"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":44,"referenced_works":["https://openalex.org/W1522251113","https://openalex.org/W1555697857","https://openalex.org/W1963538417","https://openalex.org/W1988177568","https://openalex.org/W1990204174","https://openalex.org/W2003960306","https://openalex.org/W2009775190","https://openalex.org/W2012655764","https://openalex.org/W2055806388","https://openalex.org/W2062145157","https://openalex.org/W2070880808","https://openalex.org/W2081276788","https://openalex.org/W2110196404","https://openalex.org/W2118578267","https://openalex.org/W2123092976","https://openalex.org/W2133639043","https://openalex.org/W2134291411","https://openalex.org/W2143028982","https://openalex.org/W2145945984","https://openalex.org/W2154697693","https://openalex.org/W2159430067","https://openalex.org/W2165264979","https://openalex.org/W2187917193","https://openalex.org/W2236043833","https://openalex.org/W2239389360","https://openalex.org/W2247694024","https://openalex.org/W2752261840","https://openalex.org/W2780684764","https://openalex.org/W2887330232","https://openalex.org/W2898037052","https://openalex.org/W2908243715","https://openalex.org/W2994726342","https://openalex.org/W3037296081","https://openalex.org/W3215948348","https://openalex.org/W4205167460","https://openalex.org/W4206286386","https://openalex.org/W4234171087","https://openalex.org/W4240476803","https://openalex.org/W4244104539","https://openalex.org/W4293813091","https://openalex.org/W4315780281","https://openalex.org/W4366078183","https://openalex.org/W4386317102","https://openalex.org/W4396981648"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2748952813","https://openalex.org/W1615487630","https://openalex.org/W2997091376","https://openalex.org/W2390279801","https://openalex.org/W2358668433","https://openalex.org/W95605005","https://openalex.org/W3016872867","https://openalex.org/W4396701345","https://openalex.org/W2376932109"],"abstract_inverted_index":{"Multi-stage":[0],"programming":[1,24,38],"has":[2],"been":[3],"used":[4],"in":[5,50,86],"a":[6,66,131],"wide":[7],"variety":[8],"of":[9,22,36,48,64,139],"domains":[10],"to":[11,56,100],"eliminate":[12],"the":[13,20,33,45,58,62,83,111,134,140],"tension":[14],"between":[15],"abstraction":[16],"and":[17,43,77,108,122,137],"performance.":[18],"However,":[19],"interaction":[21],"multi-stage":[23,37],"features":[25,27],"with":[26,80],"for":[28,88,133],"programming-in-the-large":[29],"remains":[30],"understudied,":[31],"hindering":[32],"full":[34],"integration":[35],"support":[39],"into":[40,92],"existing":[41],"languages,":[42],"limiting":[44],"effective":[46],"use":[47],"staging":[49],"large":[51],"programs.":[52],"We":[53,95,125],"take":[54],"steps":[55],"remedy":[57],"situation":[59],"by":[60],"studying":[61],"extension":[63,69],"MacoCaml,":[65],"recent":[67],"OCaml":[68,87,141],"that":[70,110,127],"supports":[71],"compile-time":[72],"code":[73],"generation":[74],"via":[75,106],"macros":[76],"quotations":[78],",":[79],"module":[81],"functors,":[82],"key":[84,114],"mechanism":[85],"assembling":[89],"program":[90],"components":[91],"larger":[93],"units.":[94],"discuss":[96],"design":[97,112],"choices":[98],"related":[99],"evaluation":[101],"order,":[102],"formalize":[103],"our":[104],"calculus":[105],"elaboration,":[107],"show":[109],"enjoys":[113],"metatheoretical":[115],"properties:":[116],"syntactic":[117],"type":[118],"soundness,":[119,121],"elaboration":[120],"phase":[123],"distinction.":[124],"believe":[126],"this":[128],"study":[129],"lays":[130],"foundation":[132],"continued":[135],"exploration":[136],"implementation":[138],"macro":[142],"system.":[143]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":3}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
