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

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

3天内不再提示

Ada Watch:为工作找到合适的编程语言

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

Ada 是一种强类型语言,是开发高可靠性程序的自然选择。一些语言,如C,擅长低级编程,但不能解决其他挑战 - 正如我之前的博客所介绍的那样。您需要为工作选择合适的工具。与其对每个问题使用一种语言或一种工具,不如为工程师提供多种选择来开发高可靠性软件——这正是 Ada 的亮点。

我们可以通过高层次的视角来说明这一点,而无需深入研究特定的语言细节和个人偏好。第一步是研究强类型语言如何避免难以检测的错误和不正确的程序操作。

Ada在高可靠性应用中的优势

Ada 的许多高可靠性软件开发功能并非 Ada 所独有,可以在各种其他(强类型)编程语言中找到。Ada的独特之处在于所有这些功能都可以在一种编程语言中找到。

Ada 是强类型。简单来说,这意味着变量、常量或对象必须在使用之前声明。但是,它也允许语言(编译器)静态检查使用此类标识符的有效性。

此设计功能的一个有趣效果是,可以将拼写错误和拼写错误检测为错误并为开发人员标记。任何人类的写作努力都会有错误,随着总写作工作量的增加,错误的数量也会增加。由于许多拼写错误对于不经意的观察者来说看起来是正确的(或者它们一开始就不会发生),让语言检测到这些是非常有价值的。

假设程序员打算将车辆位置“L”计算为实数,并将整数索引“I”用于其他目的。在 Ada 中,如果使用变量“I”而不是“L”,则它将被标记为操作的错误类型。在 C 中,索引“I”将被隐式转换(“强制转换”)为表达式中的实值,从而引入错误。像这样的简单错误可能保持隐藏,难以发现,并且对软件的预期含义有潜移默化的变化。例如,“位置”应该是程序中此时的车辆位置,但索引“I”是不相关的。

Ada 支持将程序规范与实现分离的概念。该语言支持外部程序单元可见和调用的程序规范的定义。这定义了单元或子程序的名称及其参数、类型等。该规范对使用“with”构造的调用方可见。实现或正文可能位于单独的文件中,并包含规范的完整算法实现。此单元在语义上始终对调用方不可见。因此,调用方无法更改算法的内部详细信息

这是Ada语言的一个关键特征,因为可以单独开发,测试和验证单元集合,而不必担心组合时会发生副作用。这允许以安全和可扩展的方式构建分层或组件架构。Ada 在这方面具有其他功能,但此基本概念对于开发高可靠性应用程序至关重要。具有“#Include”样式的其他语言功能在语义上将引用单元的源文本“包含”到引用/调用单元的源中。这使得所有内部详细信息对调用方可见,并允许发生意外或有目的的副作用。在小程序中,可以手动检测对这些内部细节的操纵。读者可以看到,调用方中的拼写错误可能会意外引用并更改被调用单元中的内部值(开发人员键入的“X”未在本地声明,但最终在所包含的单元中引用了“X”)。再一次,在较大的程序中,像这样的简单引用可能保持隐藏状态,难以发现,并且对软件的预期含义有隐蔽的变化。

通过结合这两个简单的功能,语言还可以检查两个标识符是否可以在表达式中一起使用。假设两个变量“A”和B“声明为:

• A 和 B 是整数类型• A 是整数,B 是颜色类型

加号(“+”)是一个子程序,具有定义数量的参数输入,具有特定类型,具有特定的返回值类型。是否有 1 “+” 1 (A+B) 的操作“+”?是否有 1“+” 蓝色 (A+B) 的操作“+”?在 C 语言的情况下,这两个表达式都可能是有效的,但它们是什么意思?在 Ada 的情况下,第一个表达式有效,但第二个表达式无效。同样,此类错误在开发生命周期的早期就被发现,在那里它们很容易被廉价地发现和纠正。

我只概述了 Ada 的一些非常基本功能的一些高级优势,因此可以在直观的层面上理解它们,为什么这些使程序更容易开发而没有错误。Ada 语言还有更多有助于开发高可靠性程序的功能,我鼓励您自己探索和测试它们。

审核编辑:郭婷

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

    关注

    10

    文章

    1942

    浏览量

    34707
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49108
收藏 人收藏

    评论

    相关推荐

    如何选择适合自己的编程语言

    在当今这个技术日新月异的时代,编程语言的选择对于软件开发者来说至关重要。不同的编程语言有着不同的优势和适用场景,因此,选择合适
    的头像 发表于 11-15 09:37 291次阅读

    编程语言的误区与常见问题

    误区一:编程语言的选择 常见问题: 初学者在选择编程语言时,往往会被市场上的热门语言所吸引,而忽视了自己的实际需求和兴趣。 一些开发者认为某
    的头像 发表于 11-15 09:35 269次阅读

    MCU编程语言和开发环境介绍

    微控制器单元(Microcontroller Unit,简称MCU)是嵌入式系统的核心,广泛应用于各种电子产品中。随着技术的发展,MCU编程语言和开发环境也在不断进步,以适应不同的应用需求。 1.
    的头像 发表于 11-01 11:51 666次阅读

    C语言与其他编程语言的比较

    C语言作为一种历史悠久的编程语言,自其诞生以来,一直在软件开发领域扮演着重要角色。它以其高效、灵活和可移植性强的特点,成为了系统级编程的首选语言
    的头像 发表于 10-29 17:30 262次阅读

    Orin芯片的编程语言支持

    Orin是一款高度集成、高性能的车载计算平台,由英伟达推出,并采用了英伟达自家的Volta架构GPU和其他高级处理器技术。关于Orin芯片的编程语言支持,可以从以下几个方面进行介绍: 一、主要编程
    的头像 发表于 10-27 16:45 269次阅读

    plc编程语言编程相关技巧有哪些

    PLC(可编程逻辑控制器)编程语言及相关编程技巧是工业自动化领域中不可或缺的知识。 一、PLC编程语言
    的头像 发表于 10-21 16:56 317次阅读

    labview是什么编程语言写的

    的一种图形化编程语言。它并不是用传统的文本编程语言(如C++、Python等)编写的,而是采用了一种独特的图形化编程
    的头像 发表于 09-04 16:00 868次阅读

    plc编程st语言怎么编

    PLC(可编程逻辑控制器)编程中的ST(Structured Text)语言是一种高级编程语言,它类似于Pascal或C
    的头像 发表于 08-25 10:05 1122次阅读

    PLC的编程方式及编程语言

    在工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)因其强大的控制功能和灵活的编程方式而得到了广泛应用。PLC的编程方式和编程
    的头像 发表于 06-27 14:08 707次阅读

    abb工业机器人的编程语言是什么

    ABB工业机器人的编程语言主要是RAPID(Robot Application Programming Interface for Development),它是一种高级编程语言,专门
    的头像 发表于 06-16 16:49 2503次阅读

    PLC编程语言和C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言和C语言各自扮演着重要的角色。尽管两者都是
    的头像 发表于 06-14 17:11 2778次阅读

    PLC常用编程语言有哪些

    在工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)作为一种核心控制设备,其编程语言的选择对于控制系统的设计、开发和维护具有重要影响。PLC的
    的头像 发表于 06-14 16:58 1414次阅读

    fpga用的是什么编程语言 fpga用什么语言开发

    fpga用的是什么编程语言 FPGA(现场可编程逻辑门阵列)主要使用的编程语言是硬件描述语言(H
    的头像 发表于 03-14 17:09 3488次阅读

    fpga芯片用什么编程语言

    FPGA芯片主要使用的编程语言包括Verilog HDL和VHDL。这两种语言都是硬件描述语言,用于描述数字系统的结构和行为。
    的头像 发表于 03-14 16:07 1505次阅读

    plc编程语言与c语言的联系 c语言和PLC有什么区别

    PLC编程语言与C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程
    的头像 发表于 02-05 14:21 4090次阅读