{"id":"https://openalex.org/W2966873892","doi":"https://doi.org/10.1145/3341686","title":"Narcissus: correct-by-construction derivation of decoders and encoders from binary formats","display_name":"Narcissus: correct-by-construction derivation of decoders and encoders from binary formats","publication_year":2019,"publication_date":"2019-07-26","ids":{"openalex":"https://openalex.org/W2966873892","doi":"https://doi.org/10.1145/3341686","mag":"2966873892"},"language":"en","primary_location":{"id":"doi:10.1145/3341686","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341686","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341686","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":null,"license_id":null,"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/3341686","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5073767542","display_name":"Benjamin Delaware","orcid":"https://orcid.org/0000-0002-1016-6261"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Benjamin Delaware","raw_affiliation_strings":["Purdue University, USA"],"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5046619987","display_name":"Sorawit Suriyakarn","orcid":null},"institutions":[{"id":"https://openalex.org/I4210121551","display_name":"Mayo Hospital","ror":"https://ror.org/02jxdjn74","country_code":"TH","type":"healthcare","lineage":["https://openalex.org/I4210121551"]}],"countries":["TH"],"is_corresponding":false,"raw_author_name":"Sorawit Suriyakarn","raw_affiliation_strings":["Band Protocol, Thailand"],"affiliations":[{"raw_affiliation_string":"Band Protocol, Thailand","institution_ids":["https://openalex.org/I4210121551"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5018186543","display_name":"Cl\u00e9ment Pit-Claudel","orcid":"https://orcid.org/0000-0002-1900-3901"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Cl\u00e9ment Pit-Claudel","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5013294460","display_name":"Qianchuan Ye","orcid":"https://orcid.org/0000-0002-5977-5236"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Qianchuan Ye","raw_affiliation_strings":["Purdue University, USA"],"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5078100439","display_name":"Adam Chlipala","orcid":"https://orcid.org/0000-0001-7085-9417"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Adam Chlipala","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5073767542"],"corresponding_institution_ids":["https://openalex.org/I219193219"],"apc_list":null,"apc_paid":null,"fwci":2.3132,"has_fulltext":true,"cited_by_count":25,"citation_normalized_percentile":{"value":0.91229724,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":"3","issue":"ICFP","first_page":"1","last_page":"29"},"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/T10142","display_name":"Formal Methods in Verification","score":0.9997000098228455,"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.9987999796867371,"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/computer-science","display_name":"Computer science","score":0.8951318264007568},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.8634008169174194},{"id":"https://openalex.org/keywords/encoder","display_name":"Encoder","score":0.737326979637146},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.713977038860321},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6257840991020203},{"id":"https://openalex.org/keywords/parser-combinator","display_name":"Parser combinator","score":0.573317289352417},{"id":"https://openalex.org/keywords/network-packet","display_name":"Network packet","score":0.5568321943283081},{"id":"https://openalex.org/keywords/packet-processing","display_name":"Packet processing","score":0.523172914981842},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.4245795011520386},{"id":"https://openalex.org/keywords/computer-network","display_name":"Computer network","score":0.21820831298828125},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.16650739312171936}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8951318264007568},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.8634008169174194},{"id":"https://openalex.org/C118505674","wikidata":"https://www.wikidata.org/wiki/Q42586063","display_name":"Encoder","level":2,"score":0.737326979637146},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.713977038860321},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6257840991020203},{"id":"https://openalex.org/C118364021","wikidata":"https://www.wikidata.org/wiki/Q7139956","display_name":"Parser combinator","level":3,"score":0.573317289352417},{"id":"https://openalex.org/C158379750","wikidata":"https://www.wikidata.org/wiki/Q214111","display_name":"Network packet","level":2,"score":0.5568321943283081},{"id":"https://openalex.org/C2779581428","wikidata":"https://www.wikidata.org/wiki/Q7122997","display_name":"Packet processing","level":3,"score":0.523172914981842},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.4245795011520386},{"id":"https://openalex.org/C31258907","wikidata":"https://www.wikidata.org/wiki/Q1301371","display_name":"Computer network","level":1,"score":0.21820831298828125},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.16650739312171936}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3341686","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341686","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341686","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":null,"license_id":null,"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/3341686","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3341686","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3341686","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":null,"license_id":null,"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":[{"id":"https://openalex.org/G3408632036","display_name":"SHF: Medium: Fiat: Correct-by-Construction and Mostly Automated Derivation of Programs with an Interactive Theorem Prover","funder_award_id":"1512611","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G4713059963","display_name":null,"funder_award_id":"FA8750","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G529548107","display_name":null,"funder_award_id":"CCF-1521584","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5921281487","display_name":null,"funder_award_id":"number","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G6085561891","display_name":null,"funder_award_id":"FA8750-16-C-0007","funder_id":"https://openalex.org/F4320332180","funder_display_name":"Defense Advanced Research Projects Agency"},{"id":"https://openalex.org/G6591908304","display_name":null,"funder_award_id":"CCF-1512611 and CCF-1521584,","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G8418705754","display_name":null,"funder_award_id":"CCF-1512611","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2966873892.pdf","grobid_xml":"https://content.openalex.org/works/W2966873892.grobid-xml"},"referenced_works_count":53,"referenced_works":["https://openalex.org/W158755604","https://openalex.org/W165943180","https://openalex.org/W1454728789","https://openalex.org/W1509784638","https://openalex.org/W1557583788","https://openalex.org/W1572478860","https://openalex.org/W1652311832","https://openalex.org/W1700387131","https://openalex.org/W1968796785","https://openalex.org/W1976978933","https://openalex.org/W1987073254","https://openalex.org/W1990751139","https://openalex.org/W2009064647","https://openalex.org/W2009248821","https://openalex.org/W2018951244","https://openalex.org/W2064138295","https://openalex.org/W2078250023","https://openalex.org/W2091385303","https://openalex.org/W2096679454","https://openalex.org/W2101188827","https://openalex.org/W2102311747","https://openalex.org/W2109507516","https://openalex.org/W2109524688","https://openalex.org/W2111427271","https://openalex.org/W2115810994","https://openalex.org/W2123835026","https://openalex.org/W2134939854","https://openalex.org/W2141950720","https://openalex.org/W2143934903","https://openalex.org/W2148275616","https://openalex.org/W2149827273","https://openalex.org/W2237682209","https://openalex.org/W2267469130","https://openalex.org/W2294798463","https://openalex.org/W2536320597","https://openalex.org/W2555865845","https://openalex.org/W2562397426","https://openalex.org/W2604664164","https://openalex.org/W2606939423","https://openalex.org/W2620747331","https://openalex.org/W2736692911","https://openalex.org/W2753579351","https://openalex.org/W2756121931","https://openalex.org/W2778298068","https://openalex.org/W2883286797","https://openalex.org/W2888996570","https://openalex.org/W2906874482","https://openalex.org/W2963821837","https://openalex.org/W4213362721","https://openalex.org/W4232537713","https://openalex.org/W4246839229","https://openalex.org/W4253929418","https://openalex.org/W4302403997"],"related_works":["https://openalex.org/W2775538878","https://openalex.org/W2052442681","https://openalex.org/W2123835026","https://openalex.org/W2792937288","https://openalex.org/W2234934881","https://openalex.org/W1574037173","https://openalex.org/W3196010588","https://openalex.org/W2166030873","https://openalex.org/W2966873892","https://openalex.org/W2790742555"],"abstract_inverted_index":{"It":[0],"is":[1,46,124],"a":[2,21,26,37,95,142,162],"neat":[3],"result":[4],"from":[5],"functional":[6],"programming":[7],"that":[8,56,125,144,146],"libraries":[9],"of":[10,17,23,48,81,94,136,150],"parser":[11,96],"combinators":[12],"can":[13,34],"support":[14],"rapid":[15],"construction":[16],"decoders":[18,118],"for":[19,161],"quite":[20],"range":[22],"formats.":[24],"With":[25],"little":[27],"more":[28],"work,":[29],"the":[30,43,53,59,73,82,128,171],"same":[31],"combinator":[32],"program":[33],"denote":[35],"both":[36,117,134],"decoder":[38],"and":[39,72,105,115,119],"an":[40],"encoder.":[41],"Unfortunately,":[42],"real":[44],"world":[45],"full":[47,163],"gnarly":[49],"formats,":[50,71],"as":[51],"with":[52],"packet":[54,113,159],"formats":[55,114],"make":[57],"up":[58],"standard":[60],"Internet":[61,164],"protocol":[62,165],"stack.":[63],"Most":[64],"past":[65],"parser-combinator":[66],"approaches":[67],"cannot":[68],"handle":[69],"these":[70],"few":[74],"exceptions":[75],"require":[76],"redundancy":[77],"\u2013":[78],"one":[79],"part":[80],"natural":[83,104],"grammar":[84],"needs":[85],"to":[86,101,132,157],"be":[87],"hand-translated":[88],"into":[89,170],"hints":[90],"in":[91,141,176],"multiple":[92],"parts":[93],"program.":[97],"We":[98,153],"show":[99],"how":[100],"recover":[102],"very":[103],"nonredundant":[106],"format":[107],"specifications,":[108],"covering":[109],"all":[110],"popular":[111],"network":[112],"generating":[116],"encoders":[120],"automatically.":[121],"The":[122],"catch":[123],"we":[126],"use":[127],"Coq":[129],"proof":[130],"assistant":[131],"derive":[133],"kinds":[135],"artifacts":[137],"using":[138],"tactics,":[139],"automatically,":[140],"way":[143],"guarantees":[145],"they":[147],"form":[148],"inverses":[149],"each":[151],"other.":[152],"used":[154],"our":[155,168],"approach":[156],"reimplement":[158],"processing":[160],"stack,":[166],"inserting":[167],"replacement":[169],"OCaml-based":[172],"MirageOS":[173],"unikernel,":[174],"resulting":[175],"minimal":[177],"performance":[178],"degradation.":[179]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":7},{"year":2021,"cited_by_count":5},{"year":2020,"cited_by_count":4}],"updated_date":"2026-03-15T09:29:46.208133","created_date":"2025-10-10T00:00:00"}
