{"id":"https://openalex.org/W4412989215","doi":"https://doi.org/10.1145/3747537","title":"Verified Interpreters for Dynamic Languages with Applications to the Nix Expression Language","display_name":"Verified Interpreters for Dynamic Languages with Applications to the Nix Expression Language","publication_year":2025,"publication_date":"2025-08-05","ids":{"openalex":"https://openalex.org/W4412989215","doi":"https://doi.org/10.1145/3747537"},"language":"en","primary_location":{"id":"doi:10.1145/3747537","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3747537","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/3747537","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5119220914","display_name":"Rutger Broekhoff","orcid":null},"institutions":[{"id":"https://openalex.org/I145872427","display_name":"Radboud University Nijmegen","ror":"https://ror.org/016xsfp80","country_code":"NL","type":"education","lineage":["https://openalex.org/I145872427"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Rutger Broekhoff","raw_affiliation_strings":["Radboud University Nijmegen, Nijmegen, Netherlands"],"raw_orcid":"https://orcid.org/0009-0009-3716-5638","affiliations":[{"raw_affiliation_string":"Radboud University Nijmegen, Nijmegen, Netherlands","institution_ids":["https://openalex.org/I145872427"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5029418370","display_name":"Robbert Krebbers","orcid":"https://orcid.org/0000-0002-1185-5237"},"institutions":[{"id":"https://openalex.org/I145872427","display_name":"Radboud University Nijmegen","ror":"https://ror.org/016xsfp80","country_code":"NL","type":"education","lineage":["https://openalex.org/I145872427"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Robbert Krebbers","raw_affiliation_strings":["Radboud University Nijmegen, Nijmegen, Netherlands"],"raw_orcid":"https://orcid.org/0000-0002-1185-5237","affiliations":[{"raw_affiliation_string":"Radboud University Nijmegen, Nijmegen, Netherlands","institution_ids":["https://openalex.org/I145872427"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.09009027,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"ICFP","first_page":"917","last_page":"946"},"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.9998999834060669,"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.9998999834060669,"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.9878000020980835,"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/T11424","display_name":"Security and Verification in Computing","score":0.9847999811172485,"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/interpreter","display_name":"Interpreter","score":0.8169465065002441},{"id":"https://openalex.org/keywords/expression","display_name":"Expression (computer science)","score":0.6441726088523865},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6244218945503235},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5488043427467346},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.5361796021461487},{"id":"https://openalex.org/keywords/philosophy","display_name":"Philosophy","score":0.05945906043052673}],"concepts":[{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.8169465065002441},{"id":"https://openalex.org/C90559484","wikidata":"https://www.wikidata.org/wiki/Q778379","display_name":"Expression (computer science)","level":2,"score":0.6441726088523865},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6244218945503235},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5488043427467346},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.5361796021461487},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.05945906043052673}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3747537","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3747537","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"},{"id":"pmh:oai:repository.ubn.ru.nl:2066/321453","is_oa":true,"landing_page_url":"https://hdl.handle.net/2066/321453","pdf_url":"https://repository.ubn.ru.nl/bitstream/handle/2066/321453/1/321453.pdf","source":{"id":"https://openalex.org/S4306401067","display_name":"Radboud Repository (Radboud University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I145872427","host_organization_name":"Radboud University Nijmegen","host_organization_lineage":["https://openalex.org/I145872427"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Article / Letter to editor"}],"best_oa_location":{"id":"doi:10.1145/3747537","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3747537","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":[],"awards":[{"id":"https://openalex.org/G4734733957","display_name":"Developing Correct Concurrent Software Using Types","funder_award_id":"101171349","funder_id":"https://openalex.org/F4320320300","funder_display_name":"European Commission"}],"funders":[{"id":"https://openalex.org/F4320320300","display_name":"European Commission","ror":"https://ror.org/00k4n6c32"}],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":36,"referenced_works":["https://openalex.org/W109452506","https://openalex.org/W250432737","https://openalex.org/W1515423457","https://openalex.org/W1543641760","https://openalex.org/W1746052841","https://openalex.org/W1975082667","https://openalex.org/W2002683279","https://openalex.org/W2009989404","https://openalex.org/W2023035194","https://openalex.org/W2040871029","https://openalex.org/W2054299141","https://openalex.org/W2082841864","https://openalex.org/W2091657052","https://openalex.org/W2106047869","https://openalex.org/W2117802778","https://openalex.org/W2118431434","https://openalex.org/W2124789775","https://openalex.org/W2130920933","https://openalex.org/W2560908054","https://openalex.org/W2562833768","https://openalex.org/W2568721247","https://openalex.org/W2779850521","https://openalex.org/W2780323212","https://openalex.org/W2805888229","https://openalex.org/W2899983867","https://openalex.org/W2901454403","https://openalex.org/W2996363134","https://openalex.org/W3047334575","https://openalex.org/W3105116128","https://openalex.org/W3207854221","https://openalex.org/W4236324644","https://openalex.org/W4237428230","https://openalex.org/W4242904834","https://openalex.org/W4243772354","https://openalex.org/W4298447450","https://openalex.org/W6929423218"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W1721418433","https://openalex.org/W2463512549","https://openalex.org/W3089412887","https://openalex.org/W2246915267","https://openalex.org/W2004305899","https://openalex.org/W4249558550","https://openalex.org/W2088766201"],"abstract_inverted_index":{"To":[0],"study":[1,50],"the":[2,54,57,66,82,128,157,212,221,250,260,266],"semantics":[3,22,174,201,264],"of":[4,56,84,95,108,159,162,220],"a":[5,18,61,75,106,136,160,171,217],"programming":[6],"language,":[7,60],"it":[8],"is":[9,38,74,156],"useful":[10],"to":[11,135,151,169,187,237,249,259,270],"consider":[12],"different":[13],"specification":[14],"forms\u2014":[15],"e.g.":[16],",":[17,165],"substitution-based":[19,173],"small-step":[20],"operational":[21,200],"and":[23,35,47,70,100,111,145,149,190,195,215],"an":[24],"environment-based":[25,182],"interpreter\u2014because":[26],"they":[27],"have":[28],"mutually":[29],"exclusive":[30],"benefits.":[31],"Developing":[32],"these":[33],"specifications":[34],"proving":[36],"correspondences":[37],"challenging":[39],"for":[40,81,97,114,175,224,265],"\u2018dynamic\u2019/\u2018scripting\u2019":[41],"languages":[42],"such":[43,91],"as":[44,92],"JavaScript,":[45],"PHP":[46],"Bash.":[48],"We":[49,116,179,206,232],"this":[51,256],"challenge":[52],"in":[53,65,211,229],"context":[55],"Nix":[58,73,124,240,252,267],"expression":[59,268],"dynamic":[62,146,176],"language":[63,79,253,269],"used":[64],"eponymous":[67],"package":[68],"manager":[69],"operating":[71],"system.":[72],"Turing-complete,":[76],"untyped":[77],"functional":[78],"designed":[80],"manipulation":[83],"JSON-style":[85],"attribute":[86,101],"sets,":[87],"with":[88,140,227],"tricky":[89,112],"features":[90],"overloaded":[93],"use":[94,158,233],"variables":[96],"lambda":[98,130,138],"bindings":[99],"members,":[102],"subtle":[103],"shadowing":[104],"rules,":[105],"mixture":[107],"evaluation":[109],"strategies,":[110],"mechanisms":[113],"recursion.":[115],"show":[117],"that":[118],"our":[119,199,209,239],"techniques":[120],"are":[121],"applicable":[122],"beyond":[123],"by":[125],"starting":[126],"from":[127],"call-by-name":[129],"calculus,":[131],"which":[132,166,184,246],"we":[133,185,247],"extend":[134],"core":[137],"calculus":[139],"dynamically":[141],"computed":[142],"variable":[143,177],"names":[144],"binder":[147],"names,":[148],"finally":[150],"Nix.":[152],"Our":[153],"key":[154],"novelty":[155],"form":[161],"deferred":[163,204],"substitutions":[164],"enables":[167],"us":[168],"give":[170],"concise":[172],"binding.":[178],"develop":[180],"corresponding":[181],"interpreters,":[183],"prove":[186],"be":[188],"sound":[189],"complete":[191],"(for":[192],"terminating,":[193],"faulty":[194],"diverging":[196],"programs)":[197],"w.r.t.":[198],"based":[202],"on":[203],"substitutions.":[205],"mechanize":[207],"all":[208],"results":[210],"Rocq":[213],"prover":[214],"showcase":[216],"new":[218],"feature":[219],"Rocq-std++":[222],"library":[223],"representing":[225],"syntax":[226],"maps":[228],"recursive":[230],"positions.":[231],"Rocq\u2019s":[234],"extraction":[235],"mechanism":[236],"turn":[238],"interpreter":[241],"into":[242],"executable":[243],"OCaml":[244],"code,":[245],"apply":[248],"official":[251],"tests.":[254],"Altogether":[255],"gives":[257],"rise":[258],"most":[261],"comprehensive":[262],"formal":[263],"date.":[271]},"counts_by_year":[],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
