选择编程语言是一个复杂的决定,因为它会极大地影响软件系统的预期可靠性 - 特别是在军事应用中。几乎任何语言都可用于开发任何应用程序,但是当从一个领域移动到另一个领域时,语言的原始设计优势可能不会延续。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提供了可移植性,但通常是实时性能特征之间的权衡,使此类程序难以编写,因此编写效率较低。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !