Solo per interesse, sappiamo che c'è molta programmazione nella creazione di un satellite. In quali lingue sono scritti?Lingue utilizzate per scrivere programmi per missioni satellitari?
risposta
Posso dirti che il Mars Rover had at least some C++ code (Collegamento PDF); Hanno usato Rogue Wave Tools.h++ library.
Come per qualsiasi altra attività software, la lingua utilizzata per svolgere una funzione in un satellite sarà la lingua più appropriata in base ai vari driver aziendali e IT in vigore.
Troverete esempi di lingue diverse utilizzate nell'industria aerospaziale se vi guardate intorno. Data la tua domanda, probabilmente vorrai dare un'occhiata a Ada, che viene spesso definito come utilizzato nei "sistemi in tempo reale", un articolo di notizie in modo che l'effetto sia here, alcuni utenti non di difesa sono elencati here.
Dal momento che hanno un un'architettura personalizzata collegato a periferiche varie I/O devono essere programmati in C/C++ o direttamente in ASM per migliorare le prestazioni e ottimizzazioni ..
Sono completamente personalizzato, in modo non credo ci sono altri approcci al problema, pensate anche che devono usare davvero poca energia (e devono essere caricati dal sole), quindi tendono ad avere hardware non così potente e devono essere VERAMENTE ottimizzati (ecco perché ASM è il modo). Non dovresti sprecare un singolo ciclo della CPU!
Infine il tipo di dispositivi collegati a un satellite sono davvero rari quindi penso che sia difficile utilizzare qualsiasi tipo di API standard da interfacciare (come RS232 o così via), penso che siano diversi per ogni caso.
Non mi sorprenderei di trovare molti vecchi chip come Z80s facendo il lavoro sporco su un satellite solo perché sono abbastanza potenti da svolgere compiti semplici anche se il loro bus a 8 bit!
A parte le possibilità che sono già state citate, almeno one spacecraft era controllato da software scritto in Lisp per parte del suo volo.
Le missioni satellitari della NASA Sono stato coinvolto in tutto il linguaggio di assemblaggio utilizzato per il software di bordo. C'è una forte preferenza per la NASA nell'usare il software di volo con il patrimonio - riutilizzo di componenti (sia hardware che software) con una comprovata esperienza di successo nelle precedenti missioni. Quindi, anziché utilizzare il codice compilato sui processori più potenti e più recenti, , spesso finiamo per utilizzare assembly codificati a mano su processori wimpy, ma provati e veri. Ad esempio, , il progetto THEMIS, realizzato nel 2003 e lanciato nel 2007, viene eseguito su processori Intel 8085, con moduli di assemblaggio codificati a mano con eredità di precedenti missioni come WIND, CLUSTER e STEREO.
La maggior parte delle lingue operative utilizzate presso la NASA e la Lockheed sono incentrate su statistiche e calcoli. Ciò significa MATLAB, haskell, Erlang e scala. MATLAB ed Erlang sono i più grandi richiesti per il provisioning.
Mentre la parte hardware delle cose sarà centrata attorno a Assembly, C e Verilog.
NASA utilizza molte lingue e varia in base ai suoi usi e dove viene utilizzato.I programmi scritti per alcuni calcoli e per alcuni script sono scritti principalmente usando python. I programmi per gli strumenti di terra e il controllo a terra sono scritti usando C, C++, Ada, ecc. I programmi critici scritti per gli strumenti e l'hardware di bordo sono per lo più in Assembly Language poiché offrono il massimo controllo sull'hardware e alcune vecchie lingue sono anche utilizzato come molti hardware sul satellite sono di vecchie tecnologie (non significa che sono obsoleti perché alcune funzioni sono impossibili da fare senza di loro) e altri linguaggi come MatLab, Visual Basic viene utilizzato anche per i calcoli scientifici.
- 1. Globalizzazione DNS e DLL satellitari
- 2. Quali lingue vengono utilizzate per creare il software per auto con guida di Google?
- 3. Lingue per lo sviluppo iPhone
- 4. StyleCop per altre lingue
- 5. per programmi Racket
- 6. Come devo imparare a scrivere programmi?
- 7. Come docstring in python per più lingue
- 8. Passa per nome e passa per le lingue valore-risultato
- 9. Esiste un modo per dimostrare le proprietà dei miei programmi C++?
- 10. Quali tecniche vengono utilizzate dai programmatori per scrivere test di integrazione/funzionali/accettazione mantenibili?
- 11. Come scrivere un parser ANTLR per le lingue JSP/ASP/PHP?
- 12. Le migliori lingue dinamiche per OpenGL/grafica generale
- 13. Risorse online per scrivere un parser-generator
- 14. Strutture dati utilizzate per creare file system?
- 15. Posso scrivere programmi di rete basati su Ethernet in C++?
- 16. Evitare di scrivere lo stesso algoritmo in più lingue diverse
- 17. Alcune lingue e usi per le monadi
- 18. Più database SQLite per più lingue?
- 19. Lingue fortemente tipizzate per la programmazione Web
- 20. Supporto vocale/lingue per sintesi vocale HTML5
- 21. Rileva lingue installate per il riconoscimento offline
- 22. LLVM è adatto per le lingue parallele?
- 23. Ruby On Rails: pluralize per altre lingue
- 24. Mysql colation per tutte le lingue
- 25. espressioni regolari - uguale per tutte le lingue?
- 26. Lingue diverse per il pulsante Mi piace
- 27. Judy array per le lingue gestite
- 28. Interfaccia utente iOS Automazione per lingue diverse
- 29. Suggerimenti per l'analisi algoritmica dei programmi Lisp?
- 30. Hash persistente per i programmi Ruby?
E le lingue utilizzate per il controllo degli acceleratori e dei sistemi frenanti Toyota? – DOK
@DOK Un commento che ho scritto in un thread di discussione correlato su lwn.net: http://lwn.net/Articles/374618/ –
Grazie a tutti, è stato davvero interessante :) – trinity