2009-07-18 13 views
6

Po przeczytaniu this question po prostu zastanawiałem się, czy warto używać Haskell (lub innych funkcjonalnych języków programowania) w branżach o znaczeniu krytycznym.Funkcjonalne programowanie w elektrowniach atomowych?

Poza Erlangiem większość języków spełniała imperatywne/paradygmaty projekt po kontrakcie (Ada, Eiffel, C++).

Ale co z funkcyjnymi?

Powstały kod będzie łatwy w utrzymaniu, stabilny i wiele potencjalnych błędów może zostać wyeliminowanych przez ich ścisłe systemy typów podczas kompilacji. Lub jest leniwy oceny bardziej niebezpieczne niż pomocne? Czy istnieją inne wady bezpieczeństwa?

Odpowiedz

10

Myślę, że możesz. Język wydaje się dobrze pasować do takich sytuacji, zakładając, że ufasz kompilatorowi na tyle, by użyć go w krytycznej sytuacji.

Pamiętaj, że w krytycznych sytuacjach związanych z misją nie tylko Twój kod jest pod kontrolą, ale także wszystkie inne komponenty. Obejmuje to kompilator (kompilator Haskella nie należy do najłatwiejszych do sprawdzenia kodu), odpowiedni certyfikowany sprzęt, który uruchamia oprogramowanie, odpowiedni sprzęt, który kompiluje twój kod, sprzęt, który uruchamia kompilację kompilatora, który skompiluje twój kod, piekło - nawet przewody które łączą to wszystko z siecią energetyczną i częstotliwością zmiany napięcia w gnieździe.

Jeśli interesuje Cię jakość oprogramowania o znaczeniu krytycznym, proponuję przejrzeć NASA software quality procedures. Są bardzo surowi i formalni, ale ci faceci wyrzucają miliony dolarów w kosmosie w nadziei, że przetrwają w trudnych warunkach i dotrą na Marsa lub gdziekolwiek, a następnie autonomicznie będą działać i wyślą kilka ładnych zdjęć Marsjan z powrotem na Ziemię.

Tak, proszę bardzo: Haskell jest dobry w sytuacjach krytycznych dla misji, ale byłoby to drogie, aby go uruchomić.

Powiązane problemy