← 最新论文
🤖 AI

Evaluating LLM-Generated ACSL Annotations for Formal Verification

本文通过控制实验评估了五种系统(包括规则脚本、Frama-C 插件及三种大语言模型)在无需人工或学习辅助的情况下,为 506 个真实 C 程序自动生成并验证 ACSL 规范的能力与局限性。

原作者: Arshad Beg, Diarmuid O'Donoghue, Rosemary Monahan

发布于 2026-04-02
📖 1 分钟阅读☕ 轻松阅读

原作者: Arshad Beg, Diarmuid O'Donoghue, Rosemary Monahan

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是一场**“软件安全大考”,只不过考生不是人类程序员,而是各种人工智能(AI)和自动化工具**。

为了让你轻松理解,我们可以把写软件代码比作**“盖房子”,而把形式化规范(ACSL 标注)比作“建筑图纸和安全说明书”**。

1. 背景:为什么我们需要“安全说明书”?

在盖房子(写软件)时,如果只有一堆砖头(代码),没有详细的图纸和说明书,房子可能会塌,或者住进去的人(用户)会遇到危险。

  • 形式化规范就是那种用数学语言写成的、绝对严谨的“安全说明书”。它能保证房子绝对不会塌,门绝对不会打不开。
  • 问题在于:写这种说明书非常难,需要像数学家一样严谨,普通程序员很难坚持写,而且容易写错。

2. 这场“大考”考了什么?

这篇论文的研究团队(来自爱尔兰梅努斯大学)想看看:现在的 AI 和自动化工具,能不能自己写出这种完美的“安全说明书”,并且通过严格的数学考试(验证)?

他们找来了506 个真实的 C 语言程序(就像 506 栋已经盖好的房子),然后让 5 位“考生”来给这些房子写安全说明书:

  1. 规则派(Python 脚本):像是一个死板的机器人,严格按照既定规则写。
  2. 工具派(Frama-C RTE 插件):像是一个经验丰富的老工头,专门检查运行时错误。
  3. AI 三巨头
    • DeepSeek(中国的大模型)
    • GPT-5(美国的超级大模型,注:论文中使用了虚构或未来的版本号,代表最新一代)
    • OLMo3(开源的大模型)

3. 考试过程:谁在“阅卷”?

写好的说明书不能光看写得漂不漂亮,还得通过**“数学考官”**(SMT 求解器,如 Alt-Ergo, Z3, CVC4 等)的严格检查。

  • 考官的任务:拿着说明书去验证房子是否真的安全。
  • 评分标准
    • 通过率:能不能证明房子是安全的?
    • 超时率:是不是因为说明书太模糊,导致考官算了一整天也算不出来(超时)?
    • 稳定性:是不是这次算得快,下次就卡死?

4. 考试结果:谁赢了?

🏆 冠军:工具派(Frama-C RTE)

  • 表现:几乎100% 通过,而且速度极快,考官从不超时。
  • 比喻:就像老工头写的说明书,虽然可能不够“花哨”,但极其精准、保守、可靠。考官一看就懂,马上就能通过。
  • 结论:如果你追求绝对的安全和稳定,现在的自动化工具依然是王者。

🥈 亚军:规则派(Python 脚本)

  • 表现:通过率很高(70% 左右),非常稳定。
  • 比喻:像是一个按部就班的实习生,虽然不如老工头经验丰富,但从不犯错,也不乱写

🥉 季军:AI 三巨头(DeepSeek, GPT-5, OLMo3)

这里出现了有趣的分化

  • DeepSeek(表现最好的 AI)

    • 比喻:像是一个才华横溢但有点急躁的天才建筑师
    • 表现:它写的说明书很丰富,通过率很高(接近 95%),甚至能写出老工头没想到的细节。但是,因为它写得太“有创意”,有时候会让考官(求解器)感到困惑,导致计算时间变长,偶尔会超时。
    • 评价:很有潜力,但需要稍微“冷静”一点。
  • GPT-5 和 OLMo3

    • 比喻:像是一个思维跳跃、喜欢用生僻词的艺术家
    • 表现:它们写的说明书太复杂、太模糊了。考官一看就晕,要么算不出来(超时),要么直接放弃。虽然它们能写出漂亮的文字,但在数学严谨性上不如前两者。
    • 评价:目前还不太适合直接用于这种需要绝对严谨的领域,容易“翻车”。

5. 核心发现:一个“不可能三角”

这篇论文揭示了一个有趣的权衡(Trade-off)

  • 越简单、越死板的说明书(工具派) -> 验证越快、越稳,但可能不够灵活。
  • 越复杂、越有创意的说明书(AI 派) -> 表达能力越强,但验证起来越慢、越容易出错

打个比方

  • 工具派写的是:“这扇门必须能推开,不能卡住。”(简单,考官秒懂,秒过)。
  • AI 派写的是:“这扇门在量子力学层面应当保持一种既开又关的优雅状态,除非遇到特定的风……"(太复杂,考官算到头发白也没算出来)。

6. 总结:这对我们意味着什么?

  1. AI 还没完全取代专家:虽然 AI 很聪明,能写出很多代码,但在**“绝对安全”(如航空、医疗软件)的领域,目前还是自动化工具**更靠谱。
  2. AI 是强大的助手:像 DeepSeek 这样的模型已经非常接近工具的水平了。未来的方向可能是**“AI 起草 + 工具把关”,或者“工具生成骨架 + AI 填充细节”**。
  3. 不要盲目迷信 AI:如果你让 AI 直接去写安全代码的说明书,它可能会写出一些“看起来很美,但数学上无法证明”的东西,导致软件在关键时刻失效。

一句话总结
这篇论文告诉我们,让 AI 写“安全说明书”很有希望,但目前它们还像个“才华横溢但有点毛躁的学生”,而自动化工具则是“稳如老狗”的优等生。 在追求软件安全的道路上,我们需要把 AI 的创造力交给“老工头”来审核,才能既快又稳。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →