Forse la domanda sembra un po 'strana, quindi spiegherò un po' lo sfondo.
Attualmente sto lavorando a un progetto in un'università, che sarà un software di bordo completo per un satellite. Il sistema è programmato in C ++ su un sistema operativo in tempo reale. Tuttavia, alcuni sottosistemi come il sistema di controllo degli assetti e il rilevamento dei guasti e una simulazione spaziale sono attualmente implementati solo in Matlab / Simulink, per prototipare in modo efficiente gli algoritmi. Dopo la loro verifica, saranno tradotti in c ++.
Il software di bordo completo è diventato molto complesso e solo una manciata di persone conosce l'intero sistema. Inoltre, molti studenti non hanno ancora programmato in C ++ e la gestione manuale della memoria di C ++ rende ancora più difficile scrivere software mission-critical.
Ovviamente il sistema principale deve essere implementato in C ++, ma mi sono chiesto se è possibile usare un linguaggio embedded per implementare il sottosistema che è attualmente scritto in Matlab. Questo linguaggio incorporato dovrebbe includere:
- tipizzazione statica / strong e controlli del compilatore per ridurre al minimo gli errori di runtime
- utilizzo della memoria di piccole dimensioni e relativo tempo di esecuzione veloce
- gli algoritmi di controllo degli assetti sono principalmente calcoli numerici, quindi un buon supporto numerico sarebbe bello
- forse una sorta di funzione di programmazione funzionale, matlab / simulink ti incoraggiano a usarlo anche
Ho cercato su Google un po ', ma ho trovato solo Lua. È bello, ma non lo userei nel software mission-critical. Ti sei mai imbattuto in una situazione del genere o conosci qualche lingua che potrebbe soddisfare le condizioni?
EDIT: per chiarire alcune cose: embedded significa che dovrebbe essere in grado di incorporare la lingua nell'ambiente C ++ esistente. Quindi nessun linguaggio compilato come Ada o Haskell