Langage d'assemblage utilisé dans le système d'aéronef


9

Aujourd'hui, mon conférencier a mentionné que la raison pour laquelle le système d'avion est programmé en langage assembleur est due au fait que le programme en cours d'écriture a moins d'erreur. Cette affirmation est-elle vraie? Parce que quand il a demandé notre avis, j'ai dit que l'assemblage peut créer un programme plus rapide, c'est donc un bon langage pour un programme de système d'avion orienté en temps réel. Je recherche dans google, mais je n'arrive pas à trouver un article clarifiant la déclaration de mon professeur.


24
Soit vous avez mal compris votre conférencier, soit votre conférencier est un idiot.
Paul R

3
Vous ne pas voulez écrire en temps réel logiciel de contrôle critique-équipement dans l' assemblage. Il existe de bien meilleurs langages disponibles pour le développement de logiciels en temps réel et le développement de logiciels critiques.
un CVn

5
Je me demande juste quel âge a votre conférencier. Quoi qu'il en soit, il aurait peut-être seulement essayé de souligner, (échouant un peu, apparemment) qu'un certain nombre de langues modernes, telles que java, sont interdites (java a cela précisé dans sa licence d'accompagnement, btw) pour la mission liée aux avions -applications critiques.
ZJR

1
@ZJR: En fait, AFAIK, un fabricant allemand d'UAV utilise Java pour le système de contrôle de vol. Peut-être qu'ils ont acheté une licence différente?
Jörg W Mittag

1
@ JörgWMittag: un drone pourrait être capable de tuer des gens par d'autres méthodes, mais le «U» signifie une défaillance du contrôle de vol signifie qu'il ne met pas immédiatement en danger la vie humaine. La licence Java indique qu'elle ne convient pas aux systèmes critiques, mais cela n'empêche personne de faire ce choix.
DaveE

Réponses:


29

La déclaration de votre conférencier est manifestement fausse. Le code de contrôle du Joint Strike Fighter est écrit en C ++. Le 777 de Boeing utilise 99% + ADA . Le JPL utilise principalement C pour conduire des vaisseaux spatiaux.

Je suis sûr qu'il y a plus d'exemples mais je soupçonne que beaucoup sont propriétaires ou classés.

Voici un article qui rentre dans les détails au sujet du test des logiciels avioniques à un niveau plus général.


Certains projets de la NASA ont également utilisé un dialecte Lisp dans le passé. Un fabricant allemand d'UAV utilise même Java.
Jörg W Mittag

Le bombardier B2 a été récemment réécrit en C. Source: tech.slashdot.org/story/08/07/14/1934228/…
user16764

À l'époque des ténèbres (début des années 1980), le F-16A / B utilisait le langage d'assemblage pour l'ensemble de gestion des magasins et JOVIAL J3B pour l'ordinateur Firecontrol. Le F-16C / D a utilisé JOVIAL J73 pour tout pour les premiers blocs, et je pense qu'ils sont passés à Ada au cours des années suivantes. Je ne sais pas ce qu'ils utilisent aujourd'hui.
John R. Strohm

5

Je travaille sur OBOGS, qui est un composant qui se branche sur divers avions. Nous utilisons généralement C pour les appareils qui volent, mais en parcourant les fichiers historiques, il y a quelques projets d'assemblage.

C'est la mode, honnêtement. Les langues montent et descendent. Les raisons pour lesquelles les gens utilisent l'un ou l'autre varient partout et sont pour la plupart subjectives. Je trouve tout à fait plausible que quelqu'un à un moment donné ait fait valoir que l'assemblage était le bon choix pour un projet quelque part entièrement parce qu'il aurait moins d'erreurs que dans toute autre langue. Et il avait probablement raison, mais c'est parce que le gars ne savait pas comment coder en C valait la peine. De loin, la meilleure langue pour le travail est celle que vous connaissez. (Et le meilleur langage pour votre croissance personnelle est celui que vous n'avez pas.)

Vous pouvez objectivement dire que l'assemblage est plus proche du matériel, moins abstrait, plus direct, avec plus d'instructions à la même chose dans d'autres langues. Vous pouvez même dire que c'est dans le domaine de la possibilité que l'assemblage puisse être écrit pour couper les frais généraux et fumer rapidement. Si vous savez ce que vous faites. Mais en ce qui concerne la propension aux erreurs, la vitesse de développement, la lisibilité et la capacité de guérir le cancer? Tout cela dépend de la capacité du programmeur et de ce dans quoi il a travaillé au cours des 20 dernières années. Les mesures des projets avec quelle langue ont X quantités de bogues sont soumises à des facteurs sociologiques, ce qui en fait en grande partie des mesures sans valeur. Non, tout est tellement à la mode.

Il est bon de savoir à quoi se résume votre code, donc je vais dire qu'il est important d'apprendre l'assemblage. Si seulement un peu. Mais je n'y écrirais aucune avionique.


1
En fin de compte, l'écriture d'assemblage signifie moins de code machine dans l'ensemble si vous savez ce que vous faites, et vous savez à peu près exactement à quoi ressemblera le code machine résultant; vous n'avez pas à faire confiance à un compilateur pour le faire pour vous.
Hawken
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.