2009-07-18 23 views
6

Dopo aver letto this question mi sono chiesto se sarebbe stata una buona idea utilizzare Haskell (o altri linguaggi di programmazione funzionale) nei settori mission critical.Programmazione funzionale negli impianti nucleari?

Oltre a Erlang, la maggior parte delle lingue seguiva paradigmi imperativo/design per contratto (Ada, Eiffel, C++).

Ma per quanto riguarda quelli funzionali?

Il codice risultante sarebbe facilmente mantenibile, stabile e molti potenziali bug potrebbero essere eliminati dai loro rigorosi sistemi di tipi in fase di compilazione. Oppure la valutazione è più pericolosa che utile? Ci sono altri problemi di sicurezza?

risposta

10

Penso che potresti. Il linguaggio sembra adatto per tali situazioni, assumendo che si abbia fiducia nel compilatore abbastanza da usarlo in situazioni critiche.

Ricorda che nelle situazioni critiche di missione non è solo il tuo codice sotto esame, ma anche tutti gli altri componenti. Ciò include il compilatore (il compilatore Haskell non è tra i più facili da revisionare), l'hardware certificato appropriato che esegue il software, l'hardware appropriato che compila il codice, l'hardware che avvia la compilazione del compilatore che compilerà il tuo codice, cavi infernali che collegano tutto alla rete elettrica e la frequenza della variazione di tensione nella presa.

Se si è interessati alla qualità del software mission critical, suggerisco di guardare NASA software quality procedures. Sono molto severi e formali, ma questi ragazzi buttano milioni di dollari nello spazio sperando che sopravvivranno a condizioni piuttosto difficili e lo faranno su Marte o ovunque e poi opereranno autonomamente e invieranno alcune belle foto dei Marziani sulla Terra.

Quindi, ecco: Haskell è adatto per le situazioni critiche, ma sarebbe un processo costoso per avviare il suo utilizzo lì.

Problemi correlati