计算机科学 > 编程语言
[提交于 2025年10月21日
]
标题: ZipLex:带记忆导数和Zippers的可逆词法分析验证
标题: ZipLex: Verified Invertible Lexing with Memoized Derivatives and Zippers
摘要: 我们提出ZipLex,一个可验证的可逆词法分析框架。 与以往只关注满足正则表达式语义和最大匹配属性的可验证词法分析器不同,ZipLex还保证词法分析和打印是互为逆运算的。 我们的设计依赖于两个方面的想法:(1) 一种新的标记序列抽象,它捕捉了序列中标记的可分离性,同时支持它们的高效操作,以及(2) 可验证数据结构和优化的结合,包括Huet的zippers和记忆导数,以实现实际性能。 我们在Scala中实现了ZipLex,并使用Stainless验证器验证了其正确性,包括可逆性。 我们的评估表明, ZipLex支持现实应用,如JSON处理和编程语言的词法分析器。 与其他不强制可逆性的可验证词法分析器相比,ZipLex比Coqlex慢4倍,但比Verbatim++快两个数量级,这表明可验证的可逆性可以在没有高昂成本的情况下实现。
文献和引用工具
与本文相关的代码,数据和媒体
alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)
演示
推荐器和搜索工具
arXivLabs:与社区合作伙伴的实验项目
arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。
与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。
有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.