Plain Text Nostr

<-- back to main feed

thread · root 628f8f62…2cbd · depth 1 · · selected 628f8f62…2cbd

thread

root 628f8f62…2cbd · depth 1 · · selected 628f8f62…2cbd

+- TAnOTaTU -- 8h ------------------------------------------------------------------------------------------------[...]+
|                                                                                                                      |
| {{cite web                                                                                                           |
| | title = Qual linguagem de programação é usada para os softwares que controlam…                                     |
| | url = https://pt.quora.com/Qual-linguagem-de-programação-é-usada-para-os-softwares-que-controlam-um-avião          |
| | date = 2024-01-18                                                                                                  |
| | archiveurl = http://archive.today/DO7HD                                                                            |
| | archivedate = 2024-01-18 }}                                                                                        |
|                                                                                                                      |
| As fontes consistem em uma série de discussões no fórum Quora que exploram as **linguagens de programação**          |
| utilizadas em **sistemas críticos**, como softwares de controle de **aviões e foguetes**. Os especialistas destacam  |
| a predominância da linguagem **Ada**, valorizada por sua segurança e rigor, embora mencionem o uso de **C, C++ e     |
| Assembly** em contextos específicos de aviônica. Além dos aspectos técnicos das linguagens, o texto aborda normas de |
| certificação essenciais para a segurança de voo, como a **DO-178C**. O conteúdo também se expande para temas         |
| periféricos da computação, incluindo a **história da programação**, o funcionamento de barras de carregamento e o    |
| conceito de **bootstrapping** em compiladores. Em suma, o material oferece um panorama sobre como a escolha da       |
| tecnologia é ditada pela necessidade de **estabilidade e confiabilidade** em ambientes de alto risco.                |
|                                                                                                                      |
+-- reply ---------------------------------------------------------------------------------------------- [9 replies] ---+
TAnOTaTU -- 8h [parent] 
|    {{cite web
|    | title = Como um míssil é programado? Qual(ais) linguagem(ns) é(são) utilizada…
|    | url =
|    https://pt.quora.com/Como-um-míssil-é-programado-Qual-ais-linguagem-ns-é-são-utilizada-s-e-como-ele-se-orienta-n
|    o-espaço
|    | date = 2024-01-20
|    | archiveurl = http://archive.today/xjUpw
|    | archivedate = 2024-01-20 }}
|    
|    As fontes fornecidas detalham o **funcionamento técnico, a programação e os sistemas de navegação** de
|    diferentes tipos de mísseis e armamentos bélicos. Especialistas explicam que essas máquinas utilizam linguagens
|    de programação como **C, Assembly e Ada**, operando em microcontroladores exclusivos e, por vezes, em sistemas
|    antigos que ainda dependem de **disquetes por segurança**. O conteúdo explora diversos métodos de orientação,
|    incluindo **sensores de calor, radares, GPS militar e navegação inercial**, além de tecnologias de mapeamento de
|    terreno. Há também uma distinção clara entre **mísseis guiados e foguetes não guiados**, abordando as
|    dificuldades de interceptação de projéteis hipersônicos e a importância da manutenção preventiva. Por fim, os
|    textos mencionam a **segurança operacional e os desafios de hardware** em ambientes de testes militares,
|    destacando a complexidade da balística moderna.
|    reply [1 reply]
TAnOTaTU -- 8h [parent] 
|    https://w.wiki/MFQw
|    
|    **Ada** é uma linguagem de programação de **alto nível** e **multiparadigma**, criada originalmente por
|    encomenda do **Departamento de Defesa dos Estados Unidos** para unificar seus sistemas de software. Batizada em
|    homenagem a **Ada Lovelace**, a linguagem se destaca por sua **segurança extrema** e robustez, utilizando uma
|    tipagem estática rigorosa para capturar erros durante a compilação. Seu desenvolvimento é regido por **padrões
|    internacionais** da ISO e IEC, com evoluções constantes desde o lançamento inicial em 1980 até as revisões mais
|    recentes. Devido à sua confiabilidade em processos críticos, ela é amplamente aplicada em setores de
|    **aviação**, tecnologia espacial, sistemas ferroviários e **infraestrutura bancária**. A estrutura da linguagem
|    prioriza a legibilidade ao usar palavras em inglês e oferece suporte nativo para **programação paralela** e
|    gestão modular de código.
|    reply
TAnOTaTU -- 8h [parent] 
|    {{cite web
|    | title = Principais Linguagens De Programação Utilizadas Em Sistemas Embarcado…
|    | url = https://www.dio.me/articles/principais-linguagens-de-programacao-utilizadas-em-sistemas-embarcados
|    | date = 2026-04-26
|    | archiveurl = http://archive.today/pomSV
|    | archivedate = 2026-04-26 }}
|    reply
TAnOTaTU -- 8h [parent] 
|    O desenvolvimento de software para sistemas aviônicos é uma disciplina singular, onde a escolha da linguagem de
|    programação está intrinsecamente ligada à segurança de voo. A resposta a esta questão exige a análise do
|    principal documento normativo do setor, o DO-178C, e das justificativas técnicas que posicionam linguagens como
|    Ada e C no centro de sistemas que não podem falhar.
|    
|    O Contexto Normativo e a DO-178C
|    
|    Introduzido em 2011 como uma evolução do DO-178B, o documento RTCA DO-178C / EUROCAE ED-12C, intitulado
|    "Software Considerations in Airborne Systems and Equipment Certification" (Considerações de Software na
|    Certificação de Sistemas e Equipamentos Aerotransportados), é o padrão internacional que rege a aprovação de
|    software aerotransportado comercial. Autoridades como a FAA (EUA), a EASA (Europa) e a ANAC o utilizam como meio
|    aceitável, embora não único, para demonstrar conformidade com regulamentos de aeronavegabilidade.
|    
|    A DO-178C não prescreve uma linguagem de programação específica, mas estabelece critérios rigorosos para o
|    processo de desenvolvimento. Define cinco níveis de garantia de projeto (DAL, Design Assurance Level), do nível
|    A ao E, que qualificam o software conforme a severidade da condição de falha, variando de catastrófica a sem
|    efeito na segurança. Para os níveis mais críticos (DAL A e B), a norma exige objetivos rigorosos de verificação,
|    como cobertura de decisão modificada/condição (MC/DC) e rastreabilidade completa dos requisitos até o
|    código-fonte.
|    
|    É neste contexto que a escolha da linguagem se torna uma decisão de engenharia crítica. O processo de
|    certificação não se concentra apenas na funcionalidade, mas também na análise de segurança e na garantia de que
|    o comportamento do software é verificável, determinístico e previsível. A DO-178C exige que o código-fonte seja
|    escrito em conformidade com um padrão de codificação definido e que a linguagem possua sintaxe não ambígua e um
|    controle claro de dados. Os padrões de codificação, como o MISRA C e o JSF AV C++, surgem como ferramentas
|    essenciais para mitigar os riscos de linguagens originalmente não projetadas para aplicações críticas.
|    
|    O Cenário das Linguagens de Programação Aviônicas
|    
|    A escolha da linguagem é um balanço entre expressividade, controle, segurança e viabilidade econômica no ciclo
|    de vida de uma aeronave.
|    
|    Ada e SPARK
|    
|    A linguagem Ada foi criada por iniciativa do Departamento de Defesa dos EUA com o propósito de unificar as
|    centenas de linguagens usadas em sistemas embarcados militares, incorporando confiabilidade e manutenibilidade.
|    Hoje, o ecossistema Ada, impulsionado principalmente pela empresa AdaCore, é um pilar da aviônica civil e
|    militar moderna. Exemplos notáveis incluem seu uso no sistema de controle de freio do Boeing 777 e no Sistema de
|    Gerenciamento de Voo (FMS) do Airbus A380. A AdaCore também fornece ferramentas para grandes players como
|    Thales, Lockheed Martin e Collins Aerospace, atuando no "coração da aviônica na Europa", como descreveu um de
|    seus diretores.
|    
|    A preferência por Ada reside em suas características técnicas, que se alinham com as exigências da DO-178C. Seu
|    sistema de tipos forte e verificação em tempo de compilação, combinado com suporte nativo à programação
|    concorrente (modelo de tarefas e rendezvous), permite a modelagem de sistemas de tempo real de forma segura e
|    estruturada. A evolução da linguagem culmina no SPARK, um subconjunto formalmente verificável de Ada. SPARK
|    permite que propriedades de segurança sejam provadas matematicamente através de contratos, satisfazendo
|    diretamente os objetivos do suplemento de Métodos Formais da DO-178C (DO-333).
|    
|    C e C++
|    
|    A linguagem C constitui a espinha dorsal de incontáveis sistemas embarcados, incluindo os aviônicos, devido à
|    sua eficiência e capacidade de manipulação direta de hardware. Por ser uma linguagem de propósito geral e com
|    potencial para ambiguidades, seu uso em software crítico é estritamente condicionado à adoção de um padrão de
|    codificação. O mais proeminente é o MISRA C, originalmente da indústria automotiva e amplamente adotado na
|    aviônica, que define um subconjunto seguro da linguagem para evitar construções propensas a erros.
|    
|    O projeto do caça F-35 Lightning II exemplifica uma evolução no uso de linguagens. Embora com um legado de
|    software em Ada, o F-35 adotou amplamente C++ (com estimativas de repositórios indicando 53% C e 35% C++), mas
|    sob um restritivo conjunto de regras conhecido como JSF AV C++ (Joint Strike Fighter Air Vehicle C++ Coding
|    Standards). Este padrão, cujo documento está disponível publicamente no site do criador do C++, Bjarne
|    Stroustrup, proíbe funcionalidades como tratamento de exceções, funções recursivas e alocação dinâmica de
|    memória, que são fontes de não determinismo e dificultam a garantia de tempo de resposta e a análise de pior
|    caso de execução (WCET). A proibição de exceções, em particular, ecoa a lição da falha do voo inaugural do
|    foguete Ariane 5, onde uma exceção de software não tratada levou à autodestruição do veículo.
|    
|    Linguagens de Modelagem (Model-Based Development)
|    
|    Uma tendência crescente na aviônica moderna é o desenvolvimento baseado em modelos (MBD), onde o software é
|    projetado com notações gráficas de alto nível, a partir das quais o código-fonte é gerado automaticamente. A
|    abordagem está em conformidade com os suplementos DO-331 (Modelagem) da DO-178C.
|    
|    Ferramentas como o MATLAB/Simulink da MathWorks, combinadas com o Embedded Coder, são capazes de gerar código C
|    ou C++ qualificável para DAL A. De forma semelhante, o SCADE Suite da Ansys é uma ferramenta especializada que
|    utiliza modelos de fluxo de dados e máquinas de estado para gerar código C ou Ada que é "correto por
|    construção". O gerador de código do SCADE (KCG) é qualificado como ferramenta de desenvolvimento TQL-1 segundo a
|    DO-330, o que permite aos desenvolvedores automatizar a verificação de baixo nível e focar na validação do
|    modelo em si.
|    
|    Assembly e Outras Linguagens
|    
|    O uso de Assembly não desapareceu, especialmente em rotinas de inicialização de hardware e em sequências de
|    chaveamento que exigem contagem exata de ciclos de máquina. Contudo, seu uso é minimizado ao extremo, sendo
|    restrito a pequenos trechos onde a eficiência de mais alto nível não pode ser obtida. Para a DO-178C nível A, a
|    cobertura de código deve ser verificada também em nível de objeto (object code), como suportado por ferramentas
|    de análise como a LDRA, que verificam a correção do binário gerado pelo compilador.
|    
|    Em relação a linguagens mais recentes, o Rust emerge como uma alternativa promissora, com discussões ativas na
|    comunidade e em artigos acadêmicos sobre sua adequação à DO-178C, graças ao seu modelo de gerenciamento de
|    memória (ownership) que garante segurança sem garbage collector. Embora ainda não seja uma linguagem dominante
|    em sistemas aviônicos certificados, há um crescente ecossistema de ferramentas e pesquisas para viabilizar seu
|    uso, especialmente para funções de segurança cibernética e módulos onde a segurança de memória é uma prioridade.
|    O Java, por sua vez, encontra espaço em sistemas de informação de bordo ou aplicações de missão de menor
|    criticidade, longe dos sistemas de controle de voo, uma vez que sua dependência de máquina virtual e coleta de
|    lixo introduz complexidades de verificação incompatíveis com sistemas de tempo real estrito.
|    
|    Motivos Técnicos e Normativos para a Escolha
|    
|    A seleção de uma linguagem para software aviônico não é uma questão de preferência, mas de engenharia de
|    sistemas, guiada pelos seguintes pilares:
|    
|    · Determinismo e Previsibilidade de Tempo Real: Sistemas de controle de voo operam em ciclos fixos e precisam
|    responder a eventos dentro de um limite de tempo máximo garantido, muitas vezes na casa dos microssegundos.
|    Recursos como alocação dinâmica de memória, recursão ilimitada e coleta de lixo são terminantemente proibidos
|    nos padrões de codificação de mais alta criticidade para garantir que o pior caso de execução (WCET) possa ser
|    analisado e limitado.
|    · Segurança de Memória e Tipos: A robustez de um sistema começa na prevenção de erros. Linguagens como Ada e o
|    subconjunto SPARK possuem sistemas de tipo extremamente fortes que detectam, em tempo de compilação ou por prova
|    formal, uma vasta classe de erros como buffer overflow, dangling pointers e condições de corrida. Em C e C++, os
|    padrões MISRA e JSF AV são a forma de conter os mesmos riscos através de restrições estritas.
|    · Verificabilidade e Rastreabilidade: A DO-178C exige que cada linha de código-fonte seja rastreável a um
|    requisito funcional de baixo nível, e vice-versa. Linguagens com sintaxe clara e estruturas de controle bem
|    definidas facilitam tanto a revisão manual por pares quanto a análise estática automatizada, que é uma peça
|    central do processo de certificação. Ferramentas modernas, incluindo soluções de IA, auxiliam na priorização e
|    correção de violações de padrões em bases de código C e C++, tornando a conformidade mais gerenciável.
|    
|    Exemplos Práticos de Aplicação
|    
|    A aplicação dessas linguagens pode ser vista em aeronaves que definem o estado da arte da aviação. O Airbus A380
|    utiliza o sistema operacional de tempo real particionado Integrity-178B da Green Hills Software, que suporta
|    desenvolvimento em C, C++ e Ada, com Ada sendo a linguagem de seu sistema de Gerenciamento de Voo (FMS).
|    
|    O Boeing 777, uma aeronave pioneira em sistemas fly-by-wire, foi uma das primeiras a ter seu sistema de controle
|    de frenagem completamente programado em Ada, visando atender aos rigorosos requisitos de tempo real e segurança
|    da FAA já sob a égide dos padrões DO-178 da época.
|    
|    Por fim, o programa do caça F-35, um dos sistemas de software mais complexos já embarcados, com mais de 20
|    milhões de linhas de código, representa um ecossistema heterogêneo. Embora seu software de missão e de controle
|    de voo seja predominantemente C++ sob o padrão JSF AV C++, ele convive com blocos críticos de software escritos
|    em Ada e com a geração automática de código C a partir de modelos Simulink, demonstrando uma arquitetura em que
|    a linguagem é selecionada de acordo com a função e o nível de criticidade do subsistema.
|    
|    Em conclusão, a programação de sistemas aviônicos é um campo onde a máxima "o melhor para o trabalho" é elevada
|    à sua potência máxima. Não há uma única linguagem, mas um espectro de ferramentas — Ada, SPARK, C, C++ e
|    linguagens de modelagem — cada uma com seu lugar em um ecossistema meticulosamente projetado, cujo processo de
|    seleção é moldado por décadas de lições de segurança e por um arcabouço normativo que visa garantir que o
|    software nunca seja a causa de uma tragédia.
|    reply [3 replies]
TAnOTaTU -- 8h [parent] 
|    {{cite web
|    | title = Programming language choice for avionics software after whitehouse re…
|    | url = https://www.reddit.com/r/embedded/comments/1e23uer/programming_language_choice_for_avionics_software/
|    | date = 2026-04-26
|    | archiveurl = http://archive.today/f3Ba1
|    | archivedate = 2026-04-26 }}
|    reply
TAnOTaTU -- 8h [parent] 
|    {{cite web
|    | title = A melhor linguagem para iniciantes é C e não qualquer outra linguagem…
|    | url = https://www.reddit.com/r/brdev/comments/1cd0d73/a_melhor_linguagem_para_iniciantes_é_c_e_não/
|    | date = 2026-04-26
|    | archiveurl = http://archive.today/VDzO8
|    | archivedate = 2026-04-26 }}
|    reply
TAnOTaTU -- 8h [parent] 
|    {{cite web
|    | title = Should I choose Ada, SPARK, or Rust over C/C++? AdaCore
|    | url = https://www.adacore.com/blog/should-i-choose-ada-spark-or-rust-over-c-c
|    | date = 2026-04-26
|    | archiveurl = http://archive.today/hEboe
|    | archivedate = 2026-04-26 }}
|    reply [2 replies]
TAnOTaTU -- 8h [parent] 
     https://w.wiki/MFUB
     
     https://w.wiki/MFUE
     
     Os textos descrevem o **SPARK**, uma linguagem de programação focada em **alta integridade**, e os conceitos
     fundamentais de **sistemas críticos de segurança**. Derivado do Ada, o SPARK utiliza **formalismos matemáticos**
     e contratos de código para eliminar comportamentos imprevisíveis e garantir que o software seja **altamente
     confiável**. Esses recursos são essenciais em áreas onde falhas podem causar **perda de vidas**, danos
     ambientais ou destruição de infraestruturas, como na **aviação, medicina e energia nuclear**. As fontes detalham
     como a engenharia de software busca mitigar riscos através de regimes de **tolerância a falhas** e verificações
     rigorosas. Assim, a tecnologia apresentada serve de base para o desenvolvimento de sistemas onde a **segurança e
     a correção** são requisitos absolutos.
     reply

Write a post

Sign in with a signing-capable method to publish.