paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Flexible Correct-by-Construction Programming

灵活的正确性构造编程
LMCS vol.Volume 19, Issue 22023匹配度 3/10 · 论文属于形式化程序构造与语言设计(correct-by-construction),与用户核心关注的 LLM/Agent 与静态分析/形式化验证交叉、浮点程序分析、贝叶斯程序分析均无直接关系;仅在“理论形式化+工程实现”偏好上有弱关联。引用 1 inbox
Tobias Runge, Tabea Bordis, Alex Potanin, Thomas Thüm, Ina Schaefer
crossref: 2026-09-10

AI 速览

一句话:提出并形式化两种更灵活的构造正确编程方法 CbC-Block 和 TraitCbC,并比较其可用性。

正确性构造(CbC)是一种增量式程序构造方法,可保证程序满足规约。但经典 CbC 依赖固定粒度的精化规则,缺乏灵活性。本文比较经典 CbC 与两种扩展:CbC-Block 和 TraitCbC。CbC-Block 通过增加一条可插入任意语句块的精化规则来扩展 CbC;TraitCbC 则基于带指定方法的 trait 实现 CbC,并为其提供编程指南。作者形式化引入 TraitCbC,并证明其构造策略的可靠性。最后从编程构造、工具支持和可用性三方面对三种方法进行定性比较,以评估它们对不同任务和开发者的适用性。

问题
经典 CbC 虽然能保证程序正确性,但其固定粒度的精化规则限制了程序构造的灵活性,缺乏对更灵活语言构造的支持。
方法
提出两种扩展:CbC-Block 增加插入任意语句块的精化规则,TraitCbC 基于 trait 与指定方法实现 CbC,并给出编程指南;形式化 TraitCbC 并证明构造策略的可靠性。
评估
对经典 CbC、CbC-Block 和 TraitCbC 在编程构造、工具支持与可用性方面进行定性比较,分析各自适用场景。
原文摘要(Abstract)

Correctness-by-Construction (CbC) is an incremental program construction process to construct functionally correct programs. The programs are constructed stepwise along with a specification that is inherently guaranteed to be satisfied. CbC is complex to use without specialized tool support, since it needs a set of predefined refinement rules of fixed granularity which are additional rules on top of the programming language. Each refinement rule introduces a specific programming statement and developers cannot depart from these rules to construct programs. CbC allows to develop software in a structured and incremental way to ensure correctness, but the limited flexibility is a disadvantage of CbC. In this work, we compare classic CbC with CbC-Block and TraitCbC. Both approaches CbC-Block and TraitCbC, are related to CbC, but they have new language constructs that enable a more flexible software construction approach. We provide for both approaches a programming guideline, which similar to CbC, leads to well-structured programs. CbC-Block extends CbC by adding a refinement rule to insert any block of statements. Therefore, we introduce CbC-Block as an extension of CbC. TraitCbC implements correctness-by-construction on the basis of traits with specified methods. We formally introduce TraitCbC and prove soundness of the construction strategy. All three development approaches are qualitatively compared regarding their programming constructs, tool support, and usability to assess which is best suited for certain tasks and developers.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2212,
  title = {Flexible Correct-by-Construction Programming},
  author = {Tobias Runge and Tabea Bordis and Alex Potanin and Thomas Thüm and Ina Schaefer},
  journal = {Logical Methods in Computer Science},
  volume = {Volume 19, Issue 2},
  year = {2023},
  doi = {10.46298/lmcs-19(2:16)2023}
}