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.


翻译:正确性保证构造(CbC)是一种增量式程序构建方法,用于构造功能正确的程序。程序在构建过程中逐步与规范同步,该规范内在地确保被满足。CbC 在没有专门工具支持的情况下使用较为复杂,因为它需要一组预定粒度的精化规则,这些规则是编程语言之外的附加规则。每个精化规则引入特定的编程语句,开发者无法偏离这些规则来构造程序。CbC 允许以结构化、增量式的方式开发软件以确保正确性,但灵活性不足是 CbC 的一个缺点。在本工作中,我们比较了经典 CbC 与 CbC-Block 和 TraitCbC 两种方法。CbC-Block 和 TraitCbC 这两种方法都与 CbC 相关,但它们引入了新的语言构造,使得软件构造方法更加灵活。我们为这两种方法提供了编程指南,类似于 CbC,它们能生成结构良好的程序。CbC-Block 通过添加一条精化规则来插入任意语句块,从而扩展了 CbC。因此,我们将 CbC-Block 作为 CbC 的扩展引入。TraitCbC 基于具有指定方法的特质来实现正确性保证构造。我们正式介绍了 TraitCbC,并证明了其构造策略的可靠性。所有三种开发方法在编程构造、工具支持和可用性方面进行了定性比较,以评估哪种方法更适合特定任务和开发者。

0
下载
关闭预览

相关内容

iOS 8 提供的应用间和应用跟系统的功能交互特性。
  • Today (iOS and OS X): widgets for the Today view of Notification Center
  • Share (iOS and OS X): post content to web services or share content with others
  • Actions (iOS and OS X): app extensions to view or manipulate inside another app
  • Photo Editing (iOS): edit a photo or video in Apple's Photos app with extensions from a third-party apps
  • Finder Sync (OS X): remote file storage in the Finder with support for Finder content annotation
  • Storage Provider (iOS): an interface between files inside an app and other apps on a user's device
  • Custom Keyboard (iOS): system-wide alternative keyboards

Source: iOS 8 Extensions: Apple’s Plan for a Powerful App Ecosystem
剑桥大学《数据科学: 原理与实践》课程,附PPT下载
专知会员服务
54+阅读 · 2021年1月20日
专知会员服务
55+阅读 · 2020年9月7日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
82+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
182+阅读 · 2019年10月11日
机器学习入门的经验与建议
专知会员服务
94+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
105+阅读 · 2019年10月9日
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
无监督元学习表示学习
CreateAMind
27+阅读 · 2019年1月4日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
Capsule Networks解析
机器学习研究会
11+阅读 · 2017年11月12日
可解释的CNN
CreateAMind
18+阅读 · 2017年10月5日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
0+阅读 · 2023年7月28日
Arxiv
0+阅读 · 2023年7月28日
Arxiv
33+阅读 · 2021年12月31日
Arxiv
14+阅读 · 2021年3月10日
VIP会员
最新内容
ICML 2026 | SARDI:扩散语言模型的自增强检索
专知会员服务
0+阅读 · 今天14:33
长时程具身智能安全综述:机器人操作的跨层分析
《国防领域安全采用大语言模型的战略蓝图》
专知会员服务
2+阅读 · 今天13:55
ICML 2026 | 演化选择的因果建模
专知会员服务
4+阅读 · 6月5日
综述|学习式3D表征最新进展与趋势
专知会员服务
4+阅读 · 6月5日
人工智能重塑威慑:算法优势的兴起
专知会员服务
7+阅读 · 6月5日
AgentOps综述:智能体系统运维框架
专知会员服务
16+阅读 · 6月4日
《美陆军最新条令:兵力防护》
专知会员服务
13+阅读 · 6月4日
相关VIP内容
相关资讯
Hierarchically Structured Meta-learning
CreateAMind
27+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
29+阅读 · 2019年5月18日
强化学习的Unsupervised Meta-Learning
CreateAMind
18+阅读 · 2019年1月7日
无监督元学习表示学习
CreateAMind
27+阅读 · 2019年1月4日
Unsupervised Learning via Meta-Learning
CreateAMind
44+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
18+阅读 · 2018年12月24日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
Capsule Networks解析
机器学习研究会
11+阅读 · 2017年11月12日
可解释的CNN
CreateAMind
18+阅读 · 2017年10月5日
【推荐】SVM实例教程
机器学习研究会
17+阅读 · 2017年8月26日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员