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技术时,最常见的评论可能是执行规范的能力提供了令人难以置信的可用性改进。这种动态技术和静态技术的结合对于软件验证的未来无疑是有希望的。

审核编辑:郭婷

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

    关注

    5186

    文章

    20143

    浏览量

    328649
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何正确选择基本开关和传感器?

    如何正确选择基本开关和传感器?
    发表于 09-08 06:15

    【圆满收官】第六届光电子集成芯片立强大会,中星联华助力光电子集成芯片测试更添精彩!

    2025年8月30日-8月31日第六届光电子集成芯片立强大会在湖北省武汉市举办并顺利召开!作为备受瞩目的行业盛会,本次大会聚焦光芯片、电芯片、人工智能、光器件、激光通信等热点话题及最新科技研发
    的头像 发表于 08-31 15:34 784次阅读
    【圆满收官】第六届光电<b class='flag-5'>子集</b>成芯片立<b class='flag-5'>强大</b>会,中星联华助力光电<b class='flag-5'>子集</b>成芯片测试更添精彩!

    如何正确选购功率半导体器件静态参数测试机?

    主要的功率半导体器件特性分为静态特性、动态特性、开关特性。这些测试中最基本的测试就是静态参数测试。静态参数主要是指本身固有的,与其工作条件无关的相关参数。主要包括:栅极开启电压、栅极击穿电压、源极漏
    的头像 发表于 08-05 16:06 589次阅读
    如何<b class='flag-5'>正确</b>选购功率半导体器件<b class='flag-5'>静态</b>参数测试机?

    如何选择正确的光纤尾纤

    选择正确的光纤尾纤取决于应用、距离和设备。以下是需要考虑的因素: 1. 选择正确的光纤类型:单模还是多模 单模光纤尾纤(OS2)专为城域网、骨干链路或5G前传等长距离传输而设计。它们具
    的头像 发表于 07-09 09:54 569次阅读

    如何保证硫酸铜参比电极测量数据的准确性

    硫酸铜参比电极测量数据的准确性,可从电极的选择、安装、使用和维护等方面采取相应措施,具体如下: 选择合适的电极 质量可靠:选择有质量保证的硫酸铜参比电极,确保其内部结构合理、材料纯度高
    的头像 发表于 05-19 10:21 409次阅读
    如何<b class='flag-5'>保证</b>硫酸铜参比电极测量数据的准确性

    光纤VS 同轴互连:如何选择正确的高速测试方案?

    在当今蓬勃发展的测试与测量领域,选择正确的互连解决方案对于确保准确、可靠和高速的数据传输至关重要。光纤和同轴电缆是行业的主流选择,在不同的应用场景中,它们各自拥有独特的优势与局限性。本文探讨了光纤与同轴互连的主要差异,并为高速测
    的头像 发表于 04-29 14:06 899次阅读
    光纤VS 同轴互连:如何<b class='flag-5'>选择</b><b class='flag-5'>正确</b>的高速测试方案?

    ADA4940-2超低功耗、低失真ADC驱动器技术手册

    ADA4940-1/ADA4940-2是低噪声、低失真、超低功耗的差分放大器,非常适合驱动分辨率最高为18位、DC至1 MHz的低功耗、高分辨率、高性能SAR型和Σ-Δ型模数转换器(ADC),静态
    的头像 发表于 03-14 13:42 976次阅读
    <b class='flag-5'>ADA</b>4940-2超低功耗、低失真ADC驱动器技术手册

    ADA4940-1超低功耗、低失真ADC驱动器技术手册

    ADA4940-1 / ADA4940-2是低噪声、低失真、超低功耗的差分放大器,非常适合驱动分辨率最高为18位、DC至1MHz的低功耗、高分辨率、高性能SAR型和Σ-Δ型模数转换器(ADC),静态
    的头像 发表于 03-14 11:58 1837次阅读
    <b class='flag-5'>ADA</b>4940-1超低功耗、低失真ADC驱动器技术手册

    集成电路和光子集成技术的发展历程

    本文介绍了集成电路和光子集成技术的发展历程,并详细介绍了铌酸锂光子集成技术和硅和铌酸锂复合薄膜技术。
    的头像 发表于 03-12 15:21 1543次阅读
    集成电路和光<b class='flag-5'>子集</b>成技术的发展历程

    ADA4807-1 adi

    电子发烧友网为你提供ADI(ADI)ADA4807-1相关产品参数、数据手册,更有ADA4807-1的引脚图、接线图、封装手册、中文资料、英文资料,ADA4807-1真值表,ADA48
    发表于 03-11 18:52
    <b class='flag-5'>ADA</b>4807-1 adi

    ADA4945-1高速、±0.3µV/°C 失调漂移、全差分ADC驱动器技术手册

    数据采集与信号处理应用。该器件非常适合驱动采用4 mA静态电流(全功率模式)工作的高分辨率、高性能逐次逼近型寄存器(SAR)和Σ-Δ型模数转换器(ADC)。该器件还可以选择采用1.4 mA静态电流(低
    的头像 发表于 03-11 09:30 1511次阅读
    <b class='flag-5'>ADA</b>4945-1高速、±0.3µV/°C 失调漂移、全差分ADC驱动器技术手册

    NVIDIA RTX 4500 Ada与NVIDIA RTX A5000的对比

    基于大众所熟知的 NVIDIA Ada Lovelace 架构,NVIDIA RTX 4500 Ada Generation是一款介于 NVIDIA RTX 4000 Ada 和 NVIDIA RTX 5000
    的头像 发表于 03-05 10:30 3677次阅读

    如何正确选择直流高压发生器

    如何正确选择直流高压发生器,并通过具体案例展示其应用与解决方案。 一、明确需求与应用场景 首先,需要明确使用场景和具体需求。不同行业和应用对直高发的要求各不相同,因此在选择前应考虑以下因素: 电压范围:根据实际测试
    的头像 发表于 02-19 09:24 1102次阅读
    如何<b class='flag-5'>正确</b><b class='flag-5'>选择</b>直流高压发生器

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

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

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

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