Функциональное программирование на атомных станциях? - PullRequest
6 голосов
/ 18 июля 2009

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

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

А как же функциональные?

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

1 Ответ

10 голосов
/ 18 июля 2009

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

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

Если вы заинтересованы в оценке качества критически важного программного обеспечения, я предлагаю посмотреть Процедуры качества программного обеспечения НАСА . Они очень строгие и формальные, но эти парни бросают в космос миллионы долларов в надежде, что они выживут в довольно суровых условиях и доберутся до Марса или где-то еще, а затем будут работать автономно и отправят несколько хороших фотографий марсиан на землю.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...