飞机系统中使用的汇编语言


9

今天我的讲师提到了用汇编语言对飞机系统进行编程的原因是由于编写的程序出错少。这句话是真的吗?因为当他问我们的意见时,我说过程序集可以创建更快的程序,因此对于面向实时的飞机系统程序来说,这是一种很好的语言。我在Google周围搜索,但似乎找不到一篇澄清讲师陈述的文章。


24
您可能误会了您的讲师,或者您的讲师是个白痴。
Paul R

3
希望在汇编编写实时关键设备控制软件。实时软件开发和关键软件开发都可以使用更好的语言。
CVn 2012年

5
只是想知道您的讲师的年龄。无论如何,他可能只是想指出(显然是在失败),许多现代语言(例如Java)对于飞机相关任务是禁止进入的(Java在附带的许可证中已详细说明,btw)关键的应用程序。
ZJR 2012年

1
@ZJR:实际上,德国无人机制造商AFAIK使用Java作为飞行控制系统。也许他们购买了其他许可证?
约尔格W¯¯米塔格

1
@JörgWMittag:无人机可能能够通过其他方法杀死人,但是“ U”表示飞行控制失败意味着它不会立即危害人类生命。Java许可证表示它不适用于关键任务系统,但这并不妨碍任何人做出选择。
DaveE 2012年

Answers:


29

您的讲师的陈述被证明是错误的。的联合攻击战斗机的控制码被用C ++编写。波音公司的777使用99%+ ADA。JPL主要使用C来驱动飞船。

我敢肯定还有更多例子,但我怀疑其中许多是专有的或机密的。

这是一篇论文,在更一般的水平上详细介绍了测试航空电子软件的主题


过去,某些NASA项目也使用Lisp方言。一家德国无人机制造商甚至使用Java。
约尔格W¯¯米塔格

B2轰炸机最近在C中进行了重写。资料来源:tech.slashdot.org/story/08/07/14/1934228/…– 2012
user16764

回到黑暗时代(1980年代初期),F-16A / B将汇编语言用于“商店管理集”,并将JOVIAL J3B用于火控计算机。F-16C / D在前几个街区使用了JOVIAL J73,我相信以后几年他们会改用Ada。我不知道他们今天在用什么。
John R. Strohm 2012年

5

我从事OBOGS的工作,这是一个已插入各种飞机的组件。我们通常将C用于飞行的设备,但通过历史文件查看,其中有几个组装项目。

老实说,这是时尚。语言兴衰。人们使用一个或另一个的原因在各地都有所不同,并且大多是主观的。我发现有人在某种程度上认为汇编是某个地方某个项目的正确选择是完全合理的,这完全是因为与任何其他语言相比,汇编的错误更少。他可能是对的,但这是因为那家伙不知道该死的用C语言编码。到目前为止,最好的语言是您所知道的一种语言。(而您个人成长的最佳语言就是您不会使用的语言。)

您可以客观地说,汇编语言更接近于硬件,抽象程度更低,更直接,对其他事物的更多指令则使用其他语言。您甚至可以说,可以编写汇编来减少开销并迅速吸烟是一种可能性。如果您知道自己在做什么。但是关于易错性,开发速度,可读性和治愈癌症的能力呢?所有这些都取决于程序员的能力以及他们过去20年的工作经验。对使用哪种语言的X语言漏洞数量多少的项目的测量受社会学因素的影响,这在很大程度上使它们毫无价值。不,这一切都是时尚。

很高兴知道您的代码可以归结为什么,所以我要说学习汇编很重要。如果只有一点。但我不会在其中写任何航空电子设备。


1
最后,如果您知道自己在做什么,那么编写汇编程序就意味着总体上机器代码更少,并且您几乎完全知道生成的机器代码的样子。您不必信任编译器就可以正确地使用它。
霍肯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.