Wutthichai Luemuang | Dreamstime.com

使用Ada契约强制编码

2021年5月12日
这个由多个部分组成的系列文章将研究Ada契约如何为SPARK提供证明软件正确性的能力。

本系列文章在嵌入式软件在我们的话题系列图书馆

本系列文章也在TechXchange开发高品质软件

安全可靠的软件需要代码满足规范要求。这些通常是编写的文档,必须由程序员翻译成应用程序。不幸的是,规范和实现之间的契约可能很脆弱,甚至被忽略,这可能会导致问题。如果这些规范能够由编译器强制执行,那就太好了。

合同是Ada 2012中新增的一项技术,基于SPARK,它是Ada的一个可证明子集。程序员可以注释软件的各个方面,比如前置条件和后置条件。这允许编译器证明代码执行了开发人员指定的操作。这包括可能调用函数的代码,允许删除许多有效性检查,因为编译器确保参数满足指定的要求。

这些文章提供了基于契约的编程的例子和见解:

Spark入门是另一个很好的资源。这是一个互动的网站,你可以在这里尝试合同。

    从我们的合作伙伴

    欢迎来到边缘

    照片/图像学分(按显示顺序)。pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com。加入我们吧…

    你的科技指数是多少?

    稍微看一下人工智能的技术图景——我们已经在哪里,我们在哪里,我们将走向哪里。然后与我们的合作伙伴Micr…

    使用DC/DC开关稳压器实现低电磁干扰

    随着电子系统变得越来越密集和相互连接,减少电磁干扰(EMI)的影响正变得越来越重要。

    WavePulser 40iX高速互连分析仪

    无与伦比的特征的观点。s参数(频域)和阻抗剖面(时域)的组合在一个单一的采集wi…

    欢迎来到边缘

    随着嵌入式网络设备成本的下降——以树莓派为例——它们变得无处不在。但是,这一激增的隐藏成本……
    Baidu