中文

Finding a Crab in the C: 通过比较符号执行实现确保的翻译

软件工程 2026-05-14 v1

摘要

现代高保证软件系统开发倾向于使用内存安全语言(如 SPARK(ADA) 或 Rust),但开发人员经常在遗留系统和库中遇到非内存安全代码(如 C),重写代价高昂且风险大。为此,开发人员开始寻求机器学习/AI 系统和其他自动代码翻译器。然而,自动翻译伴随自身风险。若原代码与移植代码在语义上精确相同,便无需进行翻译。为降低这些风险,我们 developed了 cozy,一款比较二进制分析工具,同时分析由“不安全”源代码编译的二进制文件与由源代码翻译至内存安全语言后编译的二进制文件。cozy 通过引导开发人员检查两种二进制文件的行为差异,呈现每个差异并要求用户评估该差异是有意为之(良好)还是错误。除 flagged 差异外,两种二进制文件均经过形式化验证等价。因此,审查过程保证在开发人员批准的更改之外的等价性。cozy 可用于自动翻译、错误更正、代码审查、操作授权和自动翻译。

关键词

引用

@article{arxiv.2605.12731,
  title  = {Finding a Crab in the C: Assured Translation via Comparative Symbolic Execution},
  author = {Caleb Helbling and Graham Leach-Krouse and Michael Crystal},
  journal= {arXiv preprint arXiv:2605.12731},
  year   = {2026}
}