Linguagem Assembly sendo usada no Sistema de Aeronaves

9

Hoje, meu palestrante mencionou que o motivo pelo qual o sistema da aeronave é programado em linguagem assembly deve-se ao fato de o programa estar sendo escrito e ter menos erros. Esta afirmação é verdadeira? Porque quando ele perguntou sobre a nossa opinião, eu disse que a montagem pode criar um programa mais rápido, portanto, é uma boa linguagem para o programa de sistemas de aeronaves em tempo real. Eu procuro no google, mas não consigo encontrar um artigo que esclareça a declaração do meu professor.

caramel1995
fonte
24
Ou você entendeu mal seu professor ou seu professor é um idiota.
Paul R
3
Você não deseja gravar software de controle de equipamento crítico em tempo real na montagem. Existem linguagens muito melhores disponíveis para o desenvolvimento de software em tempo real e o desenvolvimento de software crítico.
um CVn
5
Basta saber sobre a idade do seu professor. De qualquer forma, ele pode ter apenas tentado apontar (meio que falhando, aparentemente) que várias línguas modernas, como java, estão fora dos limites (java tem isso explicado em sua licença de acompanhamento, btw) para missões relacionadas a aeronaves aplicações críticas.
ZJR 23/10/12
11
@ZJR: Na verdade, a AFAIK, um fabricante alemão de UAV usa Java para o sistema de controle de vôo. Talvez eles tenham comprado uma licença diferente?
Jörg W Mittag
11
@ JörgWMittag: um UAV pode ser capaz de matar pessoas por outros métodos, mas o 'U' significa uma falha no controle de vôo significa que não está comprometendo imediatamente a vida humana. A licença Java diz que não é adequada para sistemas de missão crítica, mas isso não impede ninguém de fazer essa escolha.
23412 DaveE

Respostas:

29

A declaração do seu professor é comprovadamente falsa. O código de controle do Joint Strike Fighter está escrito em C ++. O 777 da Boeing usa 99% + ADA . A JPL usa principalmente C para dirigir naves espaciais.

Tenho certeza de que existem mais exemplos, mas suspeito que muitos sejam proprietários ou classificados.

Aqui está um artigo que detalha o assunto de testar o software aviônico em um nível mais geral.

Engenheiro Mundial
fonte
Alguns projetos da NASA também usavam um dialeto Lisp no passado. Um fabricante de UAV alemão ainda usa Java.
Jörg W Mittag
O bombardeiro B2 foi reescrito recentemente em C. Fonte: tech.slashdot.org/story/08/07/14/1934228/…
user16764
De volta à Idade das Trevas (início dos anos 80), o F-16A / B usava a linguagem assembly para o conjunto de gerenciamento de lojas e o JOVIAL J3B para o computador Firecontrol. O F-16C / D usou o JOVIAL J73 para tudo nos primeiros blocos, e acredito que eles mudaram para Ada nos últimos anos. Não sei o que eles estão usando hoje.
John R. Strohm
5

Eu trabalho no OBOGS, que é um componente que é conectado a várias aeronaves. Normalmente usamos C para os dispositivos que voam, mas, olhando os arquivos históricos, existem alguns projetos de montagem.

É moda, honestamente. As línguas crescem e caem. As razões pelas quais as pessoas usam um ou outro variam em todo o lugar e são principalmente subjetivas. Acho completamente plausível que alguém em algum momento tenha argumentado que a montagem era a escolha certa para algum projeto em algum lugar inteiramente porque haveria menos erros do que em qualquer outro idioma. E ele provavelmente estava certo, mas é porque o cara não sabia como codificar em C vale a pena. De longe, o melhor idioma para o trabalho é aquele que você conhece. (E a melhor linguagem para o seu crescimento pessoal é aquela que você não conhece.)

Você pode dizer objetivamente que o assembly está mais próximo do hardware, menos abstrato, mais direto, com mais instruções para a mesma coisa em outros idiomas. Você pode até dizer que é no campo da possibilidade que a montagem possa ser escrita para cortar a sobrecarga e fumar rápido. Se você sabe o que está fazendo. Mas quanto à propensão a erros, velocidade de desenvolvimento, legibilidade e capacidade de curar o câncer? Tudo isso depende da capacidade do programador e do seu trabalho nos últimos 20 anos. As medições de quais projetos com qual idioma têm uma quantidade X de erros estão sujeitos a fatores sociológicos, tornando-os, em grande parte, métricas inúteis. Não, é tudo moda.

É bom saber como o seu código se resume, então eu vou dizer que é importante aprender a montagem. Se apenas um pouco. Mas eu não escreveria nenhum aviônico nele.

Philip
fonte
11
No final, escrever assembly significa menos código de máquina em geral, se você sabe o que está fazendo, e sabe exatamente como será o código de máquina resultante; você não precisa confiar em um compilador para fazer o melhor para você.
quer