{"id":"https://openalex.org/W4206286386","doi":"https://doi.org/10.1145/3498700","title":"M\u0153bius: metaprogramming using contextual types: the stage where system f can pattern match on itself","display_name":"M\u0153bius: metaprogramming using contextual types: the stage where system f can pattern match on itself","publication_year":2022,"publication_date":"2022-01-12","ids":{"openalex":"https://openalex.org/W4206286386","doi":"https://doi.org/10.1145/3498700"},"language":"en","primary_location":{"id":"doi:10.1145/3498700","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3498700","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3498700","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/3498700","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5089882954","display_name":"Junyoung Jang","orcid":"https://orcid.org/0000-0001-6338-2155"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Junyoung Jang","raw_affiliation_strings":["McGill University, Canada"],"raw_orcid":"https://orcid.org/0000-0001-6338-2155","affiliations":[{"raw_affiliation_string":"McGill University, Canada","institution_ids":["https://openalex.org/I5023651"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5080116389","display_name":"Samuel G\u00e9lineau","orcid":"https://orcid.org/0000-0001-6070-485X"},"institutions":[{"id":"https://openalex.org/I2801388641","display_name":"Espace pour la vie","ror":"https://ror.org/01xyb4y13","country_code":"CA","type":"archive","lineage":["https://openalex.org/I2801388641"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Samuel G\u00e9lineau","raw_affiliation_strings":["SimSpace, Canada"],"raw_orcid":"https://orcid.org/0000-0001-6070-485X","affiliations":[{"raw_affiliation_string":"SimSpace, Canada","institution_ids":["https://openalex.org/I2801388641"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5049966337","display_name":"Stefan Monnier","orcid":"https://orcid.org/0000-0001-7597-5273"},"institutions":[{"id":"https://openalex.org/I70931966","display_name":"Universit\u00e9 de Montr\u00e9al","ror":"https://ror.org/0161xgx34","country_code":"CA","type":"education","lineage":["https://openalex.org/I70931966"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Stefan Monnier","raw_affiliation_strings":["Universit\u00e9 de Montr\u00e9al, Canada"],"raw_orcid":"https://orcid.org/0000-0001-7597-5273","affiliations":[{"raw_affiliation_string":"Universit\u00e9 de Montr\u00e9al, Canada","institution_ids":["https://openalex.org/I70931966"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5044908798","display_name":"Brigitte Pientka","orcid":"https://orcid.org/0000-0002-2549-4276"},"institutions":[{"id":"https://openalex.org/I5023651","display_name":"McGill University","ror":"https://ror.org/01pxwe438","country_code":"CA","type":"education","lineage":["https://openalex.org/I5023651"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Brigitte Pientka","raw_affiliation_strings":["McGill University, Canada"],"raw_orcid":"https://orcid.org/0000-0002-2549-4276","affiliations":[{"raw_affiliation_string":"McGill University, Canada","institution_ids":["https://openalex.org/I5023651"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":3.4116,"has_fulltext":true,"cited_by_count":28,"citation_normalized_percentile":{"value":0.93162171,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":99},"biblio":{"volume":"6","issue":"POPL","first_page":"1","last_page":"27"},"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.9998000264167786,"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.9998000264167786,"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/T10142","display_name":"Formal Methods in Verification","score":0.9965000152587891,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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.9945999979972839,"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/metaprogramming","display_name":"Metaprogramming","score":0.9160975217819214},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7389361262321472},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6085717678070068},{"id":"https://openalex.org/keywords/exploit","display_name":"Exploit","score":0.526712954044342},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.5226735472679138},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.46301764249801636},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.46006929874420166},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.43970435857772827},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.40365156531333923},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.2998260259628296},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.10084939002990723},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.08990824222564697}],"concepts":[{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.9160975217819214},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7389361262321472},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6085717678070068},{"id":"https://openalex.org/C165696696","wikidata":"https://www.wikidata.org/wiki/Q11287","display_name":"Exploit","level":2,"score":0.526712954044342},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.5226735472679138},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.46301764249801636},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.46006929874420166},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.43970435857772827},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.40365156531333923},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.2998260259628296},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.10084939002990723},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.08990824222564697},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","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":1,"locations":[{"id":"doi:10.1145/3498700","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3498700","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3498700","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/3498700","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3498700","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3498700","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":[{"score":0.5400000214576721,"id":"https://metadata.un.org/sdg/16","display_name":"Peace, Justice and strong institutions"}],"awards":[{"id":"https://openalex.org/G2481280139","display_name":null,"funder_award_id":"206263","funder_id":"https://openalex.org/F4320334593","funder_display_name":"Natural Sciences and Engineering Research Council of Canada"},{"id":"https://openalex.org/G5152895282","display_name":"Bourses de ma\u00eetrise en recherche \u2014 Langage informatique, Th\u00e9ories et r\u00e8gles de la logique","funder_award_id":"304215","funder_id":"https://openalex.org/F4320334841","funder_display_name":"Fonds de recherche du Qu\u00e9bec \u2013 Nature et technologies"},{"id":"https://openalex.org/G7775268781","display_name":null,"funder_award_id":"253521","funder_id":"https://openalex.org/F4320334841","funder_display_name":"Fonds de recherche du Qu\u00e9bec \u2013 Nature et technologies"}],"funders":[{"id":"https://openalex.org/F4320334593","display_name":"Natural Sciences and Engineering Research Council of Canada","ror":"https://ror.org/01h531d29"},{"id":"https://openalex.org/F4320334841","display_name":"Fonds de recherche du Qu\u00e9bec \u2013 Nature et technologies","ror":"https://ror.org/00b9f9778"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4206286386.pdf","grobid_xml":"https://content.openalex.org/works/W4206286386.grobid-xml"},"referenced_works_count":27,"referenced_works":["https://openalex.org/W46396489","https://openalex.org/W1035269900","https://openalex.org/W1433844459","https://openalex.org/W1536129331","https://openalex.org/W1990204174","https://openalex.org/W1997354605","https://openalex.org/W2009775190","https://openalex.org/W2029408547","https://openalex.org/W2049268728","https://openalex.org/W2076858065","https://openalex.org/W2094455839","https://openalex.org/W2101903817","https://openalex.org/W2134291411","https://openalex.org/W2137232178","https://openalex.org/W2147137665","https://openalex.org/W2160268991","https://openalex.org/W2295655199","https://openalex.org/W2296536988","https://openalex.org/W2528770764","https://openalex.org/W2769962266","https://openalex.org/W2805888229","https://openalex.org/W2964659165","https://openalex.org/W2965097461","https://openalex.org/W2982998514","https://openalex.org/W3105908601","https://openalex.org/W3120062901","https://openalex.org/W3163654609"],"related_works":["https://openalex.org/W2027798793","https://openalex.org/W283806354","https://openalex.org/W2578732340","https://openalex.org/W2015724691","https://openalex.org/W3006199460","https://openalex.org/W270927586","https://openalex.org/W4245886278","https://openalex.org/W1529978853","https://openalex.org/W2137137834","https://openalex.org/W1996238228"],"abstract_inverted_index":{"We":[0,146],"describe":[1,39],"the":[2,5,11,19,44,103,112,163,203,212,229,236,242],"foundation":[3,137,159,197],"of":[4,13,21,181,232,238],"metaprogramming":[6,200,233],"language,":[7],"M\u0153bius,":[8,52],"which":[9,47],"supports":[10,97],"generation":[12],"polymorphic":[14,22,106,126,130],"code":[15,23,41,54,75,82,107,127,174,243],"and,":[16,210],"more":[17],"importantly,":[18],"analysis":[20],"via":[24],"pattern":[25,118,123,170],"matching.":[26],"M\u0153bius":[27,161],"has":[28],"two":[29],"main":[30],"ingredients:":[31],"1)":[32,78],"we":[33,110,133,244],"exploit":[34,228],"contextual":[35],"modal":[36,94,114,158],"types":[37],"to":[38,91,116,138,177,218,227],"open":[40,53,173],"together":[42],"with":[43],"context":[45],"in":[46,241],"it":[48,216],"is":[49,189],"meaningful.":[50],"In":[51],"can":[55],"depend":[56],"on":[57,120,125,172,202,211],"type":[58,131,154,208],"and":[59,101,140,152,169,184,220,239,247],"term":[60],"variables":[61,76],"(level":[62,77],"0)":[63],"whose":[64],"values":[65],"are":[66,245],"supplied":[67,84],"at":[68,85],"a":[69,86,92,178,190,194],"later":[70,87],"stage,":[71],"as":[72,74],"well":[73],"that":[79,96,144],"stand":[80],"for":[81,105,160,166,198],"templates":[83],"stage.":[88],"This":[89,223],"leads":[90],"multi-level":[93,113,157],"lambda-calculus":[95,115],"System-F":[98],"style":[99],"polymorphism":[100],"forms":[102],"basis":[104],"generation.":[108],"2)":[109],"extend":[111,134],"support":[117],"matching":[119,124,171],"code.":[121,222],"As":[122],"may":[128],"refine":[129],"variables,":[132],"our":[135,187],"type-theoretic":[136,196],"generate":[139,219],"track":[141],"typing":[142],"constraints":[143],"arise.":[145],"also":[147],"give":[148],"an":[149],"operational":[150],"semantics":[151],"prove":[153],"preservation.":[155],"Our":[156],"provides":[162],"appropriate":[164],"abstractions":[165],"both":[167],"generating":[168],"without":[175,234],"committing":[176],"concrete":[179],"representation":[180],"variable":[182],"binding":[183],"contexts.":[185],"Hence,":[186],"work":[188],"step":[191],"towards":[192],"building":[193],"general":[195],"multi-staged":[199],"that,":[201],"one":[204],"hand,":[205,214],"enforces":[206],"strong":[207],"guarantees":[209],"other":[213],"makes":[215],"easy":[217],"manipulate":[221],"will":[224],"allow":[225],"us":[226],"full":[230],"potential":[231],"sacrificing":[235],"reliability":[237],"trust":[240],"producing":[246],"running.":[248]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":11},{"year":2024,"cited_by_count":9},{"year":2023,"cited_by_count":5},{"year":2022,"cited_by_count":1}],"updated_date":"2026-05-21T06:26:12.895304","created_date":"2025-10-10T00:00:00"}
