{"id":"https://openalex.org/W4390604866","doi":"https://doi.org/10.1145/3632893","title":"Unboxed Data Constructors: Or, How cpp Decides a Halting Problem","display_name":"Unboxed Data Constructors: Or, How cpp Decides a Halting Problem","publication_year":2024,"publication_date":"2024-01-02","ids":{"openalex":"https://openalex.org/W4390604866","doi":"https://doi.org/10.1145/3632893"},"language":"en","primary_location":{"id":"doi:10.1145/3632893","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632893","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632893","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/3632893","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5022885246","display_name":"Nicolas Chataing","orcid":"https://orcid.org/0009-0006-4174-2088"},"institutions":[{"id":"https://openalex.org/I29607241","display_name":"\u00c9cole Normale Sup\u00e9rieure - PSL","ror":"https://ror.org/05a0dhs15","country_code":"FR","type":"other","lineage":["https://openalex.org/I2746051580","https://openalex.org/I29607241"]},{"id":"https://openalex.org/I4210149507","display_name":"\u00c9cole des Neurosciences de Paris","ror":"https://ror.org/05re0sm29","country_code":"FR","type":"other","lineage":["https://openalex.org/I39804081","https://openalex.org/I4210149507"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Nicolas Chataing","raw_affiliation_strings":["ENS Paris, Paris, France"],"raw_orcid":"https://orcid.org/0009-0006-4174-2088","affiliations":[{"raw_affiliation_string":"ENS Paris, Paris, France","institution_ids":["https://openalex.org/I29607241","https://openalex.org/I4210149507"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5093657661","display_name":"Stephen Dolan","orcid":"https://orcid.org/0000-0002-4609-9101"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Stephen Dolan","raw_affiliation_strings":["Jane Street, London, UK"],"raw_orcid":"https://orcid.org/0000-0002-4609-9101","affiliations":[{"raw_affiliation_string":"Jane Street, London, UK","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5047042180","display_name":"Gabriel Scherer","orcid":"https://orcid.org/0000-0003-1758-3938"},"institutions":[{"id":"https://openalex.org/I1326498283","display_name":"Institut national de recherche en sciences et technologies du num\u00e9rique","ror":"https://ror.org/02kvxyf05","country_code":"FR","type":"government","lineage":["https://openalex.org/I1326498283"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Gabriel Scherer","raw_affiliation_strings":["Inria, Paris, France"],"raw_orcid":"https://orcid.org/0000-0003-1758-3938","affiliations":[{"raw_affiliation_string":"Inria, Paris, France","institution_ids":["https://openalex.org/I1326498283"]}]},{"author_position":"last","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, UK"],"raw_orcid":"https://orcid.org/0009-0002-1650-6340","affiliations":[{"raw_affiliation_string":"University of Cambridge, Cambridge, UK","institution_ids":["https://openalex.org/I241749"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":4,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.4869,"has_fulltext":true,"cited_by_count":2,"citation_normalized_percentile":{"value":0.68267267,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":"8","issue":"POPL","first_page":"1509","last_page":"1539"},"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.9997000098228455,"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.9997000098228455,"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/T10772","display_name":"Distributed systems and fault tolerance","score":0.9932000041007996,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9891999959945679,"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.8133327960968018},{"id":"https://openalex.org/keywords/normalization","display_name":"Normalization (sociology)","score":0.7045997977256775},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6848785281181335},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.6395652294158936},{"id":"https://openalex.org/keywords/mathematical-proof","display_name":"Mathematical proof","score":0.5466152429580688},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.5448782444000244},{"id":"https://openalex.org/keywords/data-type","display_name":"Data type","score":0.531179666519165},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.4986703395843506},{"id":"https://openalex.org/keywords/dependent-type","display_name":"Dependent type","score":0.49862146377563477},{"id":"https://openalex.org/keywords/type-safety","display_name":"Type safety","score":0.49589094519615173},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.48525285720825195},{"id":"https://openalex.org/keywords/halting-problem","display_name":"Halting problem","score":0.4782201945781708},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.43433618545532227},{"id":"https://openalex.org/keywords/completeness","display_name":"Completeness (order theory)","score":0.420652836561203},{"id":"https://openalex.org/keywords/preprocessor","display_name":"Preprocessor","score":0.4136321246623993},{"id":"https://openalex.org/keywords/lambda-calculus","display_name":"Lambda calculus","score":0.29261428117752075},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.15036624670028687}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8133327960968018},{"id":"https://openalex.org/C136886441","wikidata":"https://www.wikidata.org/wiki/Q926129","display_name":"Normalization (sociology)","level":2,"score":0.7045997977256775},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6848785281181335},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.6395652294158936},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.5466152429580688},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.5448782444000244},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.531179666519165},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.4986703395843506},{"id":"https://openalex.org/C20528804","wikidata":"https://www.wikidata.org/wiki/Q997433","display_name":"Dependent type","level":3,"score":0.49862146377563477},{"id":"https://openalex.org/C44779574","wikidata":"https://www.wikidata.org/wiki/Q736866","display_name":"Type safety","level":2,"score":0.49589094519615173},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.48525285720825195},{"id":"https://openalex.org/C137343475","wikidata":"https://www.wikidata.org/wiki/Q622849","display_name":"Halting problem","level":4,"score":0.4782201945781708},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.43433618545532227},{"id":"https://openalex.org/C17231256","wikidata":"https://www.wikidata.org/wiki/Q5156540","display_name":"Completeness (order theory)","level":2,"score":0.420652836561203},{"id":"https://openalex.org/C34736171","wikidata":"https://www.wikidata.org/wiki/Q918333","display_name":"Preprocessor","level":2,"score":0.4136321246623993},{"id":"https://openalex.org/C135790938","wikidata":"https://www.wikidata.org/wiki/Q242028","display_name":"Lambda calculus","level":2,"score":0.29261428117752075},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.15036624670028687},{"id":"https://openalex.org/C19165224","wikidata":"https://www.wikidata.org/wiki/Q23404","display_name":"Anthropology","level":1,"score":0.0},{"id":"https://openalex.org/C2524010","wikidata":"https://www.wikidata.org/wiki/Q8087","display_name":"Geometry","level":1,"score":0.0},{"id":"https://openalex.org/C29248071","wikidata":"https://www.wikidata.org/wiki/Q163310","display_name":"Turing machine","level":3,"score":0.0},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C144024400","wikidata":"https://www.wikidata.org/wiki/Q21201","display_name":"Sociology","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3632893","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632893","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632893","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/3632893","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632893","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632893","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":[{"id":"https://metadata.un.org/sdg/4","display_name":"Quality Education","score":0.4300000071525574}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4390604866.pdf","grobid_xml":"https://content.openalex.org/works/W4390604866.grobid-xml"},"referenced_works_count":11,"referenced_works":["https://openalex.org/W1683154758","https://openalex.org/W2063068243","https://openalex.org/W2085014646","https://openalex.org/W2109795737","https://openalex.org/W2161780258","https://openalex.org/W2952816516","https://openalex.org/W2998852367","https://openalex.org/W3183609626","https://openalex.org/W4315606552","https://openalex.org/W4384661235","https://openalex.org/W6637473886"],"related_works":["https://openalex.org/W4213453328","https://openalex.org/W784401050","https://openalex.org/W1975664374","https://openalex.org/W3006590528","https://openalex.org/W2019388039","https://openalex.org/W2082367883","https://openalex.org/W4235662267","https://openalex.org/W2118227920","https://openalex.org/W2112150205","https://openalex.org/W4388685546"],"abstract_inverted_index":{"We":[0,50,82,93,162],"propose":[1],"a":[2,71,77],"new":[3],"language":[4],"feature":[5,100],"for":[6,101,190],"ML-family":[7],"languages,":[8],"the":[9,27,47,52,84,102,111,152,187,194],"ability":[10],"to":[11,25,60,88,166,182,186],"selectively":[12],"unbox":[13],"certain":[14],"data":[15],"constructors,":[16],"so":[17],"that":[18,42,63],"their":[19,30],"runtime":[20],"representation":[21],"gets":[22],"compiled":[23],"away":[24],"just":[26],"identity":[28],"on":[29],"argument.":[31],"Unboxing":[32],"must":[33,146],"be":[34,183],"statically":[35],"rejected":[36],"when":[37],"it":[38],"could":[39],"introduce":[40],"confusion,":[41],"is,":[43],"distinct":[44],"values":[45],"with":[46,113,160,172],"same":[48],"representation.":[49],"discuss":[51,106],"use-case":[53],"of":[54,98,138,149,174],"big":[55],"numbers,":[56],"where":[57],"unboxing":[58,91],"allows":[59],"write":[61],"code":[62],"is":[64,132],"both":[65],"efficient":[66],"and":[67,110,176],"safe,":[68],"replacing":[69],"either":[70],"safe":[72],"but":[73,79],"slow":[74],"version":[75],"or":[76],"fast":[78],"unsafe":[80],"version.":[81],"explain":[83],"static":[85,122],"analysis":[86,123],"necessary":[87],"reject":[89],"incorrect":[90],"requests.":[92],"present":[94],"our":[95],"prototype":[96],"implementation":[97],"this":[99],"OCaml":[103],"programming":[104],"language,":[105],"several":[107],"design":[108],"choices":[109],"interaction":[112],"advanced":[114],"features":[115],"such":[116],"as":[117],"Guarded":[118],"Algebraic":[119],"Datatypes.":[120],"Our":[121,178],"requires":[124],"expanding":[125],"type":[126,129,140],"definitions":[127],"in":[128,136,151,193],"expressions,":[130],"which":[131],"not":[133],"necessarily":[134],"normalizing":[135],"presence":[137],"recursive":[139],"definitions.":[141],"In":[142],"other":[143],"words,":[144],"we":[145],"decide":[147],"normalization":[148,188],"terms":[150],"first-order":[153],"<mml:math":[154],"xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"":[155],"display=\"inline\">":[156],"<mml:mi>\u03bb</mml:mi>":[157],"</mml:math>":[158],"-calculus":[159],"recursion.":[161],"provide":[163],"an":[164],"algorithm":[165,179],"detect":[167],"non-termination":[168],"on-the-fly":[169],"during":[170],"reduction,":[171],"proofs":[173],"correctness":[175],"completeness.":[177],"turns":[180],"out":[181],"closely":[184],"related":[185],"strategy":[189],"macro":[191],"expansion":[192],"cpp":[195],"preprocessor.":[196]},"counts_by_year":[{"year":2024,"cited_by_count":2}],"updated_date":"2026-07-22T07:51:19.307946","created_date":"2025-10-10T00:00:00"}
