0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

选择正确的Ada子集以获得强大的静态保证

星星科技指导员 来源:嵌入式计算设计 作者:YANNICK MOY 2022-11-01 09:45 次阅读

虽然 Ada 提供了许多在运行时充当安全防护的功能,但在检测到违规时会引发异常,但其中一些功能可能过于复杂,无法保证在程序运行之前安全执行。例如指针就是这种情况,指针可用于在内存中创建任意复杂的共享数据结构。SPARK 是 Ada 的一个子集,它禁止这些功能,最明显的是指针,以便能够在编译时提供强有力的保证。SPARK的下一个修订版SPARK 2014的预览版以及相关的验证工具已经可用。

尽管SPARK的演进一直伴随着Ada的演进,每个新版本的Ada(SPARK 83,SPARK 95,SPARK 2005)都有一个新版本的SPARK,但新版本SPARK 2014在许多方面都有很大的不同。SPARK 2014 是 2010年启动的一个项目的结果,该项目旨在使使用形式验证而不是测试关键软件具有成本效益。就在几个月前,空中客车公司提出了采用正式方法的五个“必备”标准:健全性,代码的适用性,“普通”工程师在“普通”计算机上的可用性,对经典方法的改进,可认证性。在这三年中,我们非常牢记这五个标准,以下是SPARK 2014和相关验证工具GNATprove的结果。

稳健:

这是语言和工具的基石。它不仅限于说:“我们使用霍尔逻辑”。我们想要实现的是“最大”的健全性:当你适当地使用它们时,不仅工具不能陈述错误的属性,而且通过滥用工具(例如通过陈述错误的公理)来获得对软件的错误信心也不容易。为了确保最大的合理性,采取了许多决定,例如禁止用户陈述公理。

对代码的适用性:

SPARK 2014 是 Ada 的最大可能子集,它仍然可以进行形式验证。特别是,它包括泛型、标记类型、判别器、动态类型、早期回报以及 SPARK 2005 中排除的许多其他功能。对于代码中无法正式分析的部分,我们已经可以将形式验证与测试结合起来。因此,它不是一种全有或全无的技术,而是您可以在任何Ada项目中真正引入的技术。

普通工程师的可用性:

这是这些年来让我们最忙的问题。首先,我们已经实现了自动化水平,大多数证明都是自动通过的,特别是没有运行时错误的证明。其次,我们将工具紧密集成到开发人员工作流(例如,通过使用项目文件和自动计算的依赖项)和开发环境(例如,在特定子程序或代码行上运行GNATprove 的能力,以及显示有问题的程序路径)。

改进测试:

形式验证是详尽无遗的,这一事实使其成为关键软件所要求的昂贵单元测试活动的理想替代品。这方面的主要挑战是促进逐步采用正式核查。由于形式验证所需的子程序合同对于测试已经很有用,并且由于GNATproly可以单独应用于任何Ada程序中的各个SPARK子程序,因此切换到形式验证可以在几天内完成。

可认证性:

当我们开始这个项目时,航空电子标准DO-178的正式方法补充尚未最终确定。从那时起,它与新版本的标准DO-178C一起发布,因此今天,GNATprove 可以用于代替在最高级别A或B开发的平面中测试关键嵌入式程序。我们在IEEE软件上发表了一篇关于如何处理在这种情况下覆盖的微妙问题的论文。当然,已经认可形式化方法的其他领域的项目(例如铁路)也可以使用GNATprove。

该项目开发的工业案例研究的结果是公开的,供其他人了解新技术擅长什么以及当前发展阶段。当用户从以前的SPARK技术切换到新的SPARK 2014技术时,最常见的评论可能是执行规范的能力提供了令人难以置信的可用性改进。这种动态技术和静态技术的结合对于软件验证的未来无疑是有希望的。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5096

    文章

    19199

    浏览量

    308282
收藏 人收藏

    评论

    相关推荐

    教你如何正确选择贴片电容的容量

    作为muRata的代理商,在帮助客户选择贴片电容的容量时,会综合考虑多个因素以确保选择的电容能够满足应用需求。以下是一些关于正确选择贴片电容容量的建议: 一、明确应用需求 了解电路功能
    的头像 发表于 01-15 16:24 129次阅读

    ADA4941-1芯片DIS管脚如何正确对外连接控制其使能状态和禁用状态?

    ADA4941-1芯片DIS管脚如何正确对外连接控制其使能状态和禁用状态 我当前测试时发现,只有把DIS管脚悬空,才能使得ADA4941-1芯片正常工作,而人工置高电平(3V)或者低电平(0V
    发表于 12-27 06:26

    如何选择和配置海外静态IP,提升网络性能

    选择和配置海外静态IP提升网络性能是一个涉及多方面因素的过程。
    的头像 发表于 11-13 07:07 294次阅读

    MOS管如何正确选择

    在现代电子电路中,MOS管(金属氧化物半导体场效应晶体管)因其低功耗、高输入阻抗和易于集成等优点,被广泛应用于各种电子设备中。然而,正确选择MOS管对于确保电路的性能和可靠性至关重要。本文将详细介绍
    的头像 发表于 10-09 14:18 489次阅读
    MOS管如何<b class='flag-5'>正确</b><b class='flag-5'>选择</b>?

    选择正确的DC/DC转换器延长电池寿命

    电子发烧友网站提供《选择正确的DC/DC转换器延长电池寿命.pdf》资料免费下载
    发表于 09-29 10:54 0次下载
    <b class='flag-5'>选择</b><b class='flag-5'>正确</b>的DC/DC转换器<b class='flag-5'>以</b>延长电池寿命

    选择正确的LP8860-Q1 EEPROM版本

    电子发烧友网站提供《选择正确的LP8860-Q1 EEPROM版本.pdf》资料免费下载
    发表于 09-20 09:10 0次下载
    <b class='flag-5'>选择</b><b class='flag-5'>正确</b>的LP8860-Q1 EEPROM版本

    为MCU扩展选择正确的多路复用器

    电子发烧友网站提供《为MCU扩展选择正确的多路复用器.pdf》资料免费下载
    发表于 09-18 11:52 0次下载
    为MCU扩展<b class='flag-5'>选择</b><b class='flag-5'>正确</b>的多路复用器

    选择正确的德州仪器 (TI) 信号开关应用说明

    电子发烧友网站提供《选择正确的德州仪器 (TI) 信号开关应用说明.pdf》资料免费下载
    发表于 09-12 10:14 0次下载
    <b class='flag-5'>选择</b><b class='flag-5'>正确</b>的德州仪器 (TI) 信号开关应用说明

    如何正确选择步进电机驱动器

    步进电机驱动器是步进电机系统中的重要组成部分,它负责将控制信号转换为步进电机所需的电流和电压,驱动电机进行精确的角度或线性位移。正确选择步进电机驱动器对于保证步进电机系统的正常运行、
    的头像 发表于 06-05 18:04 2518次阅读

    如何正确选择一体成型插件电感规格尺寸

    如何正确选择一体成型插件电感规格尺寸gujing 编辑:谷景电子 一体成型插件电感是应用特别普遍的一款电感元件,它在电子电路中的是其他电子元器件没有办法取代的。要充分发挥一体成型插件电感的作用,正确
    的头像 发表于 05-06 16:27 548次阅读

    子集成芯片和光子集成技术的区别

    子集成芯片和光子集成技术虽然紧密相关,但它们在定义和应用上存在一些区别。
    的头像 发表于 03-25 14:45 959次阅读

    子集成芯片和光子集成技术是什么

    子集成芯片和光子集成技术是光子学领域的重要概念,它们代表了光子在集成电路领域的应用和发展。
    的头像 发表于 03-25 14:17 1158次阅读

    子集成芯片是什么

    子集成芯片,也称为光子芯片或光子集成电路,是一种将光子器件小型化并集成在特殊衬底材料上的技术。这些特殊的光子器件,如光栅、耦合器、光开关、激光器、光电探测器、阵列波导等,被组合在一起完成特定的功能。光
    的头像 发表于 03-22 16:51 1316次阅读

    微波光子集成芯片和硅基光子集成芯片的区别

    微波光子集成芯片和硅基光子集成芯片都是光电子领域的重要技术,但它们在设计原理、应用领域以及制造工艺上存在着显著的区别。
    的头像 发表于 03-20 16:14 1225次阅读

    选择正确的功率因数校正(PFC)拓扑

    电子发烧友网站提供《选择正确的功率因数校正(PFC)拓扑.pdf》资料免费下载
    发表于 03-18 14:35 1次下载