Generation of Certifiably Correct Programs from Formal Models

A. Iliasov
{"title":"Generation of Certifiably Correct Programs from Formal Models","authors":"A. Iliasov","doi":"10.1109/WoSoCER.2011.14","DOIUrl":null,"url":null,"abstract":"Application of formal notations and verifications techniques helps to deliver systems that are free from engineering defects. A code generator is an essential tool for formal development of real-world systems; it transforms models into runnable software quickly, consistently and reproducibly. Commonly, a code generator is a program constructed informally and producing an output that is not formally traced to an input. Industrial standards to the development of safety-critical systems, such as IEC 61508, require a justification for any tool used in a development: extensive prior experience or a formal certification. An extensive experience is often not an option as there are very few sufficiently mature modelling toolsets. The certification of a code generator is a major effort increasing costs and development time. We propose an approach where a modeller places no trust whatsoever in the code generation stage but rather obtains software that is certifiable without any further effort. The essence of the approach is in the transformation of a formal model into runnable software that is demonstratively correct in respect to a given set of verification criteria, coming from a requirements document. A Hoare logic is used to embedd correctness criteria into the resultant program; the approach supports design-by-contract annotations to allow developer to mix formal and informal parts with a fair degree of rigour.","PeriodicalId":318139,"journal":{"name":"2011 First International Workshop on Software Certification","volume":"5 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 First International Workshop on Software Certification","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WoSoCER.2011.14","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4

Abstract

Application of formal notations and verifications techniques helps to deliver systems that are free from engineering defects. A code generator is an essential tool for formal development of real-world systems; it transforms models into runnable software quickly, consistently and reproducibly. Commonly, a code generator is a program constructed informally and producing an output that is not formally traced to an input. Industrial standards to the development of safety-critical systems, such as IEC 61508, require a justification for any tool used in a development: extensive prior experience or a formal certification. An extensive experience is often not an option as there are very few sufficiently mature modelling toolsets. The certification of a code generator is a major effort increasing costs and development time. We propose an approach where a modeller places no trust whatsoever in the code generation stage but rather obtains software that is certifiable without any further effort. The essence of the approach is in the transformation of a formal model into runnable software that is demonstratively correct in respect to a given set of verification criteria, coming from a requirements document. A Hoare logic is used to embedd correctness criteria into the resultant program; the approach supports design-by-contract annotations to allow developer to mix formal and informal parts with a fair degree of rigour.
从形式模型生成可证明正确的程序
正式符号和验证技术的应用有助于交付没有工程缺陷的系统。代码生成器是现实世界系统正式开发的必要工具;它可以快速、一致和可复制地将模型转换为可运行的软件。通常,代码生成器是一个非正式构造的程序,它产生的输出没有正式跟踪到输入。开发安全关键系统的工业标准,如IEC 61508,要求在开发中使用任何工具的理由:丰富的先前经验或正式认证。丰富的经验通常不是一个选择,因为很少有足够成熟的建模工具集。代码生成器的认证是增加成本和开发时间的主要工作。我们提出了一种方法,在这种方法中,建模者在代码生成阶段不给予任何信任,而是无需进一步努力即可获得可认证的软件。该方法的本质是将正式模型转换为可运行的软件,该软件根据来自需求文档的一组给定的验证标准被证明是正确的。Hoare逻辑用于将正确性标准嵌入到结果程序中;该方法支持契约式设计注释,允许开发人员以相当严格的程度混合正式和非正式的部分。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信