航空機システムで使用されているアセンブリ言語


9

今日、私の講師は、航空機システムがアセンブリ言語でプログラミングされている理由は、記述されているプログラムのエラーが少ないためだと述べました。このステートメントは本当ですか?彼が私たちの意見について尋ねたとき、私はアセンブリがより速いプログラムを作成できると私は言ったので、それはリアルタイム指向の航空機システムプログラムにとって良い言語です。私はグーグルで検索しましたが、講師の発言を明確にする記事が見つかりません。


24
あなたは講師を誤解しているか、講師はばかです。
ポールR

3
あなたはないではないアセンブリ内のリアルタイムクリティカル機器制御ソフトウェアを書きたいです。リアルタイムソフトウェア開発と重要なソフトウェア開発の両方で利用できるはるかに優れた言語があります。
からCVn

5
講師の年齢を考えてみてください。とにかく、彼は、Javaなどのいくつかの現代の言語が航空機関連のミッションの立ち入り禁止(javaには付随するライセンスに明記されている)であることを指摘しようとしただけかもしれません(明らかに失敗しているようです)。 -重要なアプリケーション。
ZJR 2012年

1
@ZJR:実際、ドイツのUAVメーカーであるAFAIKは、飛行制御システムにJavaを使用しています。多分彼らは別のライセンスを購入しましたか?
イェルクWミッターク

1
@JörgWMittag:UAVは他の方法で人を殺すことができるかもしれませんが、 'U'は飛行制御の失敗を意味し、人間の生活をすぐに危険にさらすわけではありません。Javaライセンスは、ミッションクリティカルなシステムには適していないと述べていますが、それでも誰もその選択を妨げるものではありません。
DaveE 2012年

回答:


29

あなたの講師の発言はおそらく間違いです。主力戦闘機の制御コードはC ++で書かれています。ボーイングの777は99%+ ADAを使用しています。JPLは主にCを使用して宇宙船を運転しています。

他にも例はあると思いますが、多くは独自のものであるか機密のものです。

ここでは、より一般的なレベルでのアビオニクスソフトウェアのテストの主題について詳細に説明した論文を紹介します。


一部のNASAプロジェクトも、過去にLisp方言を使用しました。ドイツのUAVメーカーもJavaを使用しています。
イェルクWミッターク

B2爆撃機のは、最近C.ソースに書き直されました:tech.slashdot.org/story/08/07/14/1934228/...
user16764

暗黒時代(1980年代初頭)に戻ると、F-16A / Bはストア管理セットにアセンブリ言語を使用し、FirecontrolコンピューターにJOVIAL J3Bを使用しました。F-16C / Dは最初の数ブロックのすべてにJOVIAL J73を使用しましたが、後の年にAdaに切り替えたと思います。彼らが今日何を使っているのかわかりません。
John R. Strohm、

5

私はさまざまな航空機に接続されるコンポーネントであるOBOGSに取り組んでいます。通常、飛行するデバイスにはCを使用しますが、履歴ファイルを見ると、そこにいくつかのアセンブリプロジェクトがあります。

正直、ファッションです。言語は上下します。人がどちらか一方を使用する理由は場所によって異なり、主に主観的です。他の言語よりもエラーが少ないので、どこかでアセンブリが完全にどこかのプロジェクトの正しい選択であると誰かが主張したことは完全にもっともらしいです。そして、おそらく彼は正しかったのですが、それはその男がCでのコーディング方法を知らなかったからです。間違いなく、仕事に最適な言語はあなたが知っている言語です。(そしてあなたの個人的な成長のための最良の言語はあなたがそうでないものです。)

客観的に言うと、アセンブリはハードウェアに近く、抽象化されておらず、直接的であり、他の言語では同じものに対する命令が多くなっています。頭上をカットして速く喫煙できるようにアセンブリを書くことができる可能性の領域にいるとも言えます。あなたが何をしているか知っているなら。しかし、間違いやすい傾向、開発のスピード、読みやすさ、そして癌を治す能力についてはどうでしょうか。それはすべて、プログラマーの能力と、プログラマーが過去20年間働いてきたことに依存します。どの言語のどのプロジェクトにX個のバグがあるかを測定することは、社会学的要因の影響を受けるため、主に価値のない指標になります。いいえ、それはすべてただのファッションです。

コードの内容を理解しておくのは良いことなので、アセンブリを学ぶことが重要だと言います。少しだけなら。しかし、私はそれにアビオニクスを書きません。


1
結局のところ、アセンブリを作成すると、実行中のマシンコードが全体的に少なくなり、結果のマシンコードがどのようになるかを正確に把握できます。コンパイラを信頼する必要はありません。
ホーケン、2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.