Wutthichai Luemuang | Dreamstime.com

使用Ada契约强制编码

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

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

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

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

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

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

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

    从我们的合作伙伴

    通用DIN外壳,几乎任何应用

    通用DIN外壳几乎任何应用Barry Manz DIN rail是基于一个如此优雅的概念,其增长正在扩大超过一个岑…

    协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

    编者注:尽管它以数字处理性能和吞吐量而闻名,但协处理器体系结构提供了嵌入式系统…

    DIY pmic:用户可编程pmic

    在DIY PMIC:用户可编程PMIC培训中,我们将介绍DIY PMIC的概念,然后是用户可编程PMIC。一节集中在h…

    WavePulser 40iX高速互连分析仪

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

    欢迎来到边缘

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

    功率密度的电源开关

    电源开关提供从电压源或地到负载的电气连接。我们多样化的投资组合包括几种拓扑,从si…
    Baidu