2009-07-18 4 views
6

После прочтения this question Я просто задавался вопросом, было бы хорошей идеей использовать Haskell (или другие языки функционального программирования) в критически важных отраслях.Функциональное программирование на атомных станциях?

Помимо Эрланг, большинство языков придерживались парадигм императива/дизайна за контракт (Ada, Eiffel, C++).

Но как насчет функциональных?

Результирующий код был бы легко ремонтируемым, стабильным и множество возможных ошибок могли быть устранены их строгими системами типа во время компиляции. Или это ленивая оценка, более опасная, чем полезная? Существуют ли другие недостатки в области безопасности?

ответ

10

Думаю, вы могли бы. Язык кажется хорошо подходящим для таких ситуаций, если вы доверяете компилятору достаточно, чтобы использовать его в критически важной ситуации.

Помните, что в критических ситуациях не только ваш код находится под пристальным вниманием, но и все остальные компоненты. Это включает компилятор (компилятор Haskell не входит в число самых простых для проверки кода), соответствующее сертифицированное оборудование, которое запускает программное обеспечение, соответствующее оборудование, которое компилирует ваш код, аппаратное обеспечение, которое загружает компиляцию компилятора, который будет компилировать ваш код, которые соединяют это все с сеткой и частотой изменения напряжения в гнезде.

Если вы заинтересованы в изучении критически важного качества программного обеспечения, предлагаю посмотреть NASA software quality procedures. Они очень строги и формальны, но эти ребята бросают миллионы долларов в пространстве, надеясь, что он выживет в довольно грубых условиях и отправится на Марс или где-нибудь, а затем будет автономно работать и отправить несколько хороших фотографий марсиан на землю.

Итак, вы идете: Haskell хорош для критически важных ситуаций, но это был бы дорогостоящий процесс, чтобы загружать его использование там.

Смежные вопросы