除了各种标准(例如,DO-178B / C)中的验证要求之外,没有任何语言建议或要求。对于最高的设计保证级别,必须在操作码级别检查生成的代码,以确保不会调用已知的处理器陷阱。您最终还必须测试每个条件的每个部分,包括真实和假方面,并确保没有跳转指令会将您带到您不希望它去的地方。
出于这些原因,今天嵌入式航空电子设备中使用的三大语言是:
C ++(作为一个更好的C. OO性质通常只是谨慎使用。像多态这样的东西太贵了,无法验证)
Ada(您可能不喜欢它,但目前的航空电子设备的TON是用Ada编写的,目前正在使用新功能进行维护和更新)
C - 尽可能靠近你想要的硬件并且仍然保持高效率(不打算冒犯任何能够提高效率的人)
汇编程序经常用于特定需求,但它的使用程度不会超过上述语言之一。
是什么让这些语言成为航空电子设备的理想选择,因为它们与硬件和内存结构相对接近,而不是太抽象。他们的工具成熟且众所周知。人们拥有多年的认证软件认证经验。而且有很多程序员可以快速掌握它们(是的,甚至是Ada)。
飞机内外的非安全关键软件将以当今任何一种大语言编写:Java,C#,VB,C,C ++,Python,Perl,Ruby等。
iPad在驾驶舱内变得有用,并在有限的情况下获得批准。iOS应用程序是用Objective-C,C,C ++编写的,并且越来越多地使用Swift(Apple的新语言)。