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

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

3天内不再提示

Ada Watch:选择支持可靠性的编程语言

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

选择编程语言是一个复杂的决定,因为它会极大地影响软件系统的预期可靠性 - 特别是在军事应用中。几乎任何语言都可用于开发任何应用程序,但是当从一个领域移动到另一个领域时,语言的原始设计优势可能不会延续。Ada语言由于其强大的类型和其他固有的安全特性,可以帮助开发人员生成非常可靠的程序,这使得程序更容易理解和修改,而不会产生副作用。

今天的编程语言领域非常丰富,但对于关键的嵌入式应用程序,少数应用程序往往比其他应用程序更频繁地使用。部分列表可能包括 Ada、Assembly、C、C++Java(按字母顺序排列)。这些语言(粗略地和不详尽地)分别被定义为支持:可靠和可维护的系统,硬件和设备的直接操作,操作系统和类似软件工具的构建,将当时新的面向对象编程(OOP)范式添加到基础C语言中,并支持高度可移植的应用程序。每个都擅长开发其域中的应用程序或与该域中的应用程序共享特征。

Ada 语言由于其强大的类型和其他固有的安全特性,可以帮助生成非常可靠的程序。这些相同的特征使程序更容易理解和修改,而不会产生副作用,因此它们更易于维护。如果需要算法来直接操作计算机的指令或数据,则汇编语言是无法击败的。C 是一种相对简单的语言,其中源指令通常映射到一组或一组常见的计算机指令或数据操作。术语“有思想的人的组装者”被用来描述C来传达这个概念。然而,它比汇编具有优势,因为它允许使用更高级的概念操作计算机,从而允许编写更高级的应用程序。C++使用 C 作为其基础,最值得注意的是在此基础上添加了 OOP 支持。OOP允许将问题分解为更小的可管理问题,然后为正在解决的更高级别的问题创建解决方案,以促进低级和高级组件的共享。在这种一般意义上,OOP可以在软件重用方面表现出色。Java语言旨在促进可移植性作为其主要目标。它是一种纯粹的OOP语言,鼓励继承和重用现有组件,具有比C或C++更强类型的数据模型,但努力防止C/C++直接访问/操作。

因此,汇编是直接操作计算机硬件的好语言。Ada 非常适合开发大型、长寿命系统或可靠性很重要的系统。C 适用于开发只需要应用程序和计算机之间相当低的抽象级别的应用程序。也就是说,软件开发人员执行将域解决方案转换为使其在计算机上执行的指令的任务。C++添加了 OOP 概念以及模板、命名空间管理和其他有助于软件重用和构建大规模应用程序的功能。Java是可移植性是关键设计目标的理想选择。作为一种现代编程语言,它还具有比 C 或 C++ 更强大的类型化和程序打包概念,因此软件开发人员不必直接将解决方案转换为操纵计算机的东西(事实上,在许多情况下他们不能使用 Java)。

上述每种语言在它所针对的应用程序域中使用时都会表现出色。每个域可能都不适合其他域。Ada 语言在编写非常小的程序或生存期有限的程序的语法上可能有点冗长。在这些情况下,可读性和可维护性不太重要。C 语言直接映射到硬件解决方案的能力并不是一个优势,因为软件开发人员必须编写大中型程序,在这些程序中,从问题解决方案到计算机指令的这种心理转换很难管理;程序员会犯错误。由于该语言假设开发人员的意思是他们所说的(类型),因此它将算法中的许多错误解释为仅仅是他们的意图,并且错误将与软件集成而不会被发现。

使用C相当简单的语言语法,开发人员可以快速编写大量源文本。这有时会给人一种错误的印象,即正在编写大量正确的软件。情况往往并非如此,C 和 Ada 之间的生产力比较实际上可能表明 Ada 开发人员在编写正确的源代码方面更有效率。C++语言为其C基础增加了好处,但继承了许多与C语言相同的缺点.Java提供了可移植性,但通常是实时性能特征之间的权衡,使此类程序难以编写,因此编写效率较低。

审核编辑:郭婷

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

    关注

    5046

    文章

    18837

    浏览量

    299062
  • JAVA
    +关注

    关注

    19

    文章

    2945

    浏览量

    104167
收藏 人收藏

    评论

    相关推荐

    如何提高RS485通信的可靠性

    通信可靠性下降。为了确保系统的稳定运行,提高RS485通信的可靠性至关重要。合理的布线与接地布线是影响RS485通信可靠性的重要因素之一。首先,应选择合适的线缆。R
    的头像 发表于 09-20 08:07 81次阅读
    如何提高RS485通信的<b class='flag-5'>可靠性</b>?

    AC/DC电源模块的可靠性设计与测试方法

    和安全,因此可靠性设计和测试是非常重要的。下面将详细介绍AC/DC电源模块的可靠性设计和测试方法。 AC/DC电源模块的可靠性设计与测试方法 一、
    的头像 发表于 05-14 13:53 495次阅读
    AC/DC电源模块的<b class='flag-5'>可靠性</b>设计与测试方法

    如何确保IGBT的产品可靠性

    在当今的半导体市场,公司成功的两个重要因素是产品质量和可靠性。而这两者是相互关联的,可靠性体现为在产品预期寿命内的长期质量表现。任何制造商要想维续经营,必须确保产品达到或超过基本的质量标准和可靠性
    的头像 发表于 01-25 10:21 1426次阅读
    如何确保IGBT的产品<b class='flag-5'>可靠性</b>

    IGBT的可靠性测试方案

    在当今的半导体市场,公司成功的两个重要因素是产品质量和可靠性。而这两者是相互关联的,可靠性体现为在产品预期寿命内的长期质量表现。任何制造商要想维续经营,必须确保产品达到或超过基本的质量标准和可靠性
    的头像 发表于 01-17 09:56 1070次阅读
    IGBT的<b class='flag-5'>可靠性</b>测试方案

    什么是汽车整车可靠性测试?

    当今竞争激烈的汽车市场中,汽车的品质和可靠性已成为消费者选择的重要标准。通过整车可靠性测试,汽车制造商可以确保他们的产品在各种极端条件下都能表现出色,从而赢得消费者的信任和满意度。   此外,整车
    的头像 发表于 12-22 17:16 789次阅读
    什么是汽车整车<b class='flag-5'>可靠性</b>测试?

    SD NAND 可靠性验证测试

    SDNAND可靠性验证测试的重要SDNAND可靠性验证测试至关重要。通过检验数据完整、设备寿命、性能稳定性,确保产品符合标准,可提高产品的可信度、提高品牌声誉,减少维修成本,确保
    的头像 发表于 12-14 14:29 545次阅读
    SD NAND <b class='flag-5'>可靠性</b>验证测试

    环境试验与可靠性试验的区别

    环境试验与可靠性试验的区别
    的头像 发表于 12-08 09:31 797次阅读
    环境试验与<b class='flag-5'>可靠性</b>试验的区别

    器件可靠性与温度的关系

    器件可靠性与温度的关系
    的头像 发表于 12-04 16:34 613次阅读
    器件<b class='flag-5'>可靠性</b>与温度的关系

    如何判断标准PoE供电交换机的可靠性

    如何判断标准PoE供电交换机的可靠性? 随着物联网和智能家居的快速发展,越来越多的设备需要使用到以太网供电(Power over Ethernet,PoE)交换机。在选择合适的PoE交换机时,评估其
    的头像 发表于 11-28 14:18 556次阅读

    提高PCB设备可靠性的技术措施

    提高PCB设备可靠性的技术措施:方案选择、电路设计、电路板设计、结构设计、元器件选用、制作工艺等多方面着手,具体措施如下: (1)简化方案设计。 方案设计时,在确保设备满足技术、性能指标的前提下
    发表于 11-22 06:29

    可靠性PCB的十一大重要特征

    一站式PCBA智造厂家今天为大家讲讲可靠性高的PCB都有哪些特征?可靠性高的PCB的重要特征。PCB作为电子产品的核心基板,其质量和可靠性直接影响了电子产品的质量和可靠性,为此高
    的头像 发表于 11-20 10:14 434次阅读

    可靠性试验(HALT)及可靠性评估技术

    国家电网:在就地化保护入网检测中,首次引入可靠性试验,验证产品可靠性设计水平和寿命指标。在关于新型一、二次设备(例如:电子式互感器)的科研项目中,增加了可靠性验证和寿命评估等相关研究课题。
    的头像 发表于 11-13 16:32 1162次阅读
    <b class='flag-5'>可靠性</b>试验(HALT)及<b class='flag-5'>可靠性</b>评估技术

    请问机械温控开关的可靠性有多少?

    机械温控开关的可靠性有多少?我看温控开关的体积很小,价格便宜,可以用于一些温度控制方面,不过可靠性有多少呢?
    发表于 10-31 06:37

    C语言是否支持泛型编程

    C语言是否支持泛型编程?毫无疑问,答案是不支持
    的头像 发表于 10-16 10:02 551次阅读

    MIMO是如何实现可靠性的提升

    MIMO采用多进多出的天线,来实现可靠性和有效的提升。公网采用MIMO用来提升通信容量——有效,专网通信用MIMO来提升系统的可靠性
    发表于 10-15 11:48 826次阅读
    MIMO是如何实现<b class='flag-5'>可靠性</b>的提升