{"id":"https://openalex.org/W4310884974","doi":"https://doi.org/10.1145/3571202","title":"Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT Compiler","display_name":"Formally Verified Native Code Generation in an Effectful JIT: Turning the CompCert Backend into a Formally Verified JIT Compiler","publication_year":2023,"publication_date":"2023-01-09","ids":{"openalex":"https://openalex.org/W4310884974","doi":"https://doi.org/10.1145/3571202"},"language":"en","primary_location":{"id":"doi:10.1145/3571202","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3571202","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3571202","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":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3571202","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5041214466","display_name":"Aur\u00e8le Barri\u00e8re","orcid":"https://orcid.org/0000-0002-7297-2170"},"institutions":[{"id":"https://openalex.org/I1294671590","display_name":"Centre National de la Recherche Scientifique","ror":"https://ror.org/02feahw73","country_code":"FR","type":"government","lineage":["https://openalex.org/I1294671590"]},{"id":"https://openalex.org/I2802519937","display_name":"Institut de Recherche en Informatique et Syst\u00e8mes Al\u00e9atoires","ror":"https://ror.org/00myn0z94","country_code":"FR","type":"facility","lineage":["https://openalex.org/I1294671590","https://openalex.org/I1294671590","https://openalex.org/I1326498283","https://openalex.org/I205703379","https://openalex.org/I2802204017","https://openalex.org/I2802519937","https://openalex.org/I28221208","https://openalex.org/I4210127572","https://openalex.org/I4210159245","https://openalex.org/I56067802"]},{"id":"https://openalex.org/I56067802","display_name":"Universit\u00e9 de Rennes","ror":"https://ror.org/015m7wh34","country_code":"FR","type":"education","lineage":["https://openalex.org/I56067802"]}],"countries":["FR"],"is_corresponding":true,"raw_author_name":"Aur\u00e8le Barri\u00e8re","raw_affiliation_strings":["University of Rennes, France / Inria, France / CNRS, France / IRISA, France"],"affiliations":[{"raw_affiliation_string":"University of Rennes, France / Inria, France / CNRS, France / IRISA, France","institution_ids":["https://openalex.org/I2802519937","https://openalex.org/I56067802","https://openalex.org/I1294671590"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5017440499","display_name":"Sandrine Blazy","orcid":"https://orcid.org/0000-0002-0189-0223"},"institutions":[{"id":"https://openalex.org/I1294671590","display_name":"Centre National de la Recherche Scientifique","ror":"https://ror.org/02feahw73","country_code":"FR","type":"government","lineage":["https://openalex.org/I1294671590"]},{"id":"https://openalex.org/I2802519937","display_name":"Institut de Recherche en Informatique et Syst\u00e8mes Al\u00e9atoires","ror":"https://ror.org/00myn0z94","country_code":"FR","type":"facility","lineage":["https://openalex.org/I1294671590","https://openalex.org/I1294671590","https://openalex.org/I1326498283","https://openalex.org/I205703379","https://openalex.org/I2802204017","https://openalex.org/I2802519937","https://openalex.org/I28221208","https://openalex.org/I4210127572","https://openalex.org/I4210159245","https://openalex.org/I56067802"]},{"id":"https://openalex.org/I56067802","display_name":"Universit\u00e9 de Rennes","ror":"https://ror.org/015m7wh34","country_code":"FR","type":"education","lineage":["https://openalex.org/I56067802"]}],"countries":["FR"],"is_corresponding":false,"raw_author_name":"Sandrine Blazy","raw_affiliation_strings":["University of Rennes, France / Inria, France / CNRS, France / IRISA, France"],"affiliations":[{"raw_affiliation_string":"University of Rennes, France / Inria, France / CNRS, France / IRISA, France","institution_ids":["https://openalex.org/I2802519937","https://openalex.org/I56067802","https://openalex.org/I1294671590"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5046752375","display_name":"David Pichardie","orcid":"https://orcid.org/0000-0002-2504-1760"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"David Pichardie","raw_affiliation_strings":["Meta, France","CELTIQUE - Software certification with semantic analysis (Campus de Beaulieu 35042 Rennes cedex - France)"],"affiliations":[{"raw_affiliation_string":"Meta, France","institution_ids":[]},{"raw_affiliation_string":"CELTIQUE - Software certification with semantic analysis (Campus de Beaulieu 35042 Rennes cedex - France)","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5041214466"],"corresponding_institution_ids":["https://openalex.org/I1294671590","https://openalex.org/I2802519937","https://openalex.org/I56067802"],"apc_list":null,"apc_paid":null,"fwci":4.3949,"has_fulltext":true,"cited_by_count":25,"citation_normalized_percentile":{"value":0.95416286,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":100},"biblio":{"volume":"7","issue":"POPL","first_page":"249","last_page":"277"},"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/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"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9962999820709229,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.8545445203781128},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8523892760276794},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7540597915649414},{"id":"https://openalex.org/keywords/correctness","display_name":"Correctness","score":0.6873511075973511},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.6548628211021423},{"id":"https://openalex.org/keywords/mathematical-proof","display_name":"Mathematical proof","score":0.6349105834960938},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.5626181960105896},{"id":"https://openalex.org/keywords/machine-code","display_name":"Machine code","score":0.5313810706138611},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5100441575050354},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.4526588022708893},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.4101468324661255},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.2271847426891327},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.2235378921031952}],"concepts":[{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.8545445203781128},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8523892760276794},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7540597915649414},{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.6873511075973511},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.6548628211021423},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.6349105834960938},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.5626181960105896},{"id":"https://openalex.org/C115168132","wikidata":"https://www.wikidata.org/wiki/Q55813","display_name":"Machine code","level":3,"score":0.5313810706138611},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5100441575050354},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.4526588022708893},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.4101468324661255},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.2271847426891327},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.2235378921031952},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"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/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/3571202","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3571202","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3571202","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"},{"id":"pmh:oai:arXiv.org:2212.03129","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2212.03129","pdf_url":"https://arxiv.org/pdf/2212.03129","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},{"id":"pmh:oai:HAL:hal-03882598v1","is_oa":true,"landing_page_url":"https://inria.hal.science/hal-03882598","pdf_url":"https://inria.hal.science/hal-03882598v1/document","source":{"id":"https://openalex.org/S4406922466","display_name":"SPIRE - Sciences Po Institutional REpository","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Proceedings of the ACM on Programming Languages, 2023, 7 (POPL), pp.249-277. &#x27E8;10.1145/3571202&#x27E9;","raw_type":"Journal articles"}],"best_oa_location":{"id":"doi:10.1145/3571202","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3571202","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3571202","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":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4310884974.pdf","grobid_xml":"https://content.openalex.org/works/W4310884974.grobid-xml"},"referenced_works_count":32,"referenced_works":["https://openalex.org/W2001154106","https://openalex.org/W2006731094","https://openalex.org/W2023035194","https://openalex.org/W2034340985","https://openalex.org/W2067081213","https://openalex.org/W2085050643","https://openalex.org/W2129695855","https://openalex.org/W2146530476","https://openalex.org/W2148662736","https://openalex.org/W2163552400","https://openalex.org/W2288285441","https://openalex.org/W2294599249","https://openalex.org/W2516139633","https://openalex.org/W2750805175","https://openalex.org/W2767234833","https://openalex.org/W2769308307","https://openalex.org/W2775427311","https://openalex.org/W2798573268","https://openalex.org/W2800345163","https://openalex.org/W2900135310","https://openalex.org/W2953840721","https://openalex.org/W2994990491","https://openalex.org/W2995075587","https://openalex.org/W2997529811","https://openalex.org/W3033150170","https://openalex.org/W3037570434","https://openalex.org/W3117382689","https://openalex.org/W3121850185","https://openalex.org/W3124307800","https://openalex.org/W3196027996","https://openalex.org/W3213441457","https://openalex.org/W4298447450"],"related_works":["https://openalex.org/W2371266106","https://openalex.org/W2137356287","https://openalex.org/W3011728381","https://openalex.org/W2050289144","https://openalex.org/W2087647198","https://openalex.org/W2081035944","https://openalex.org/W1606045022","https://openalex.org/W2158718504","https://openalex.org/W4243308008","https://openalex.org/W1999500280"],"abstract_inverted_index":{"Modern":[0],"Just-in-Time":[1],"compilers":[2,70,96],"(or":[3],"JITs)":[4],"typically":[5],"interleave":[6],"several":[7],"mechanisms":[8],"to":[9,18,115,157],"execute":[10,46],"a":[11,33,83,126,145,154,167,178],"program.":[12],"For":[13],"faster":[14,60],"startup":[15],"times":[16,61],"and":[17,79,119,136,160,198,211],"observe":[19],"the":[20,43,63,66,87,163,172],"initial":[21],"behavior":[22],"of":[23,42,65,74,132,144,166,175,186],"an":[24],"execution,":[25],"interpretation":[26],"can":[27,208],"be":[28,148,209],"initially":[29],"used.":[30],"But":[31],"after":[32],"while,":[34],"JITs":[35,106],"dynamically":[36],"produce":[37],"native":[38,133,187],"code":[39,188],"for":[40,58,62],"parts":[41,143],"program":[44,67],"they":[45],"often.":[47],"Although":[48,141],"some":[49,142],"time":[50],"is":[51],"spent":[52],"compiling":[53],"dynamically,":[54],"this":[55,191],"mechanism":[56],"makes":[57],"much":[59],"remaining":[64],"execution.":[68],"Such":[69],"are":[71],"complex":[72],"pieces":[73],"software":[75],"with":[76,129],"various":[77],"components,":[78],"greatly":[80],"rely":[81],"on":[82,162,183],"precise":[84],"interplay":[85],"between":[86],"different":[88],"languages":[89],"being":[90],"executed,":[91],"including":[92],"on-stack-replacement.":[93],"Traditional":[94],"static":[95],"like":[97],"CompCert":[98,197],"have":[99,107],"been":[100,108],"mechanized":[101],"in":[102,139,150],"proof":[103,155],"assistants,":[104],"but":[105],"scarcely":[109],"formalized":[110],"so":[111],"far,":[112],"partly":[113],"due":[114],"their":[116,120],"impure":[117,164],"nature":[118],"numerous":[121],"components.":[122],"This":[123],"work":[124,194],"presents":[125],"model":[127],"JIT":[128,146,180],"dynamic":[130,203],"generation":[131],"code,":[134],"implemented":[135],"formally":[137,176],"verified":[138],"Coq.":[140],"cannot":[147],"written":[149],"Coq,":[151],"we":[152],"propose":[153],"methodology":[156],"delimit,":[158],"specify":[159],"reason":[161],"effects":[165],"JIT.":[168],"We":[169],"argue":[170],"that":[171],"daunting":[173],"task":[174],"verifying":[177],"complete":[179],"should":[181],"draw":[182],"existing":[184],"proofs":[185,201],"generation.":[189],"To":[190],"end,":[192],"our":[193,206],"successfully":[195],"reuses":[196],"its":[199],"correctness":[200],"during":[202],"compilation.":[204],"Finally,":[205],"prototype":[207],"extracted":[210],"executed.":[212]},"counts_by_year":[{"year":2025,"cited_by_count":16},{"year":2024,"cited_by_count":7},{"year":2023,"cited_by_count":2}],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2022-12-20T00:00:00"}
