核电站的功能编程?

Dar*_*rio 6 functional-programming

在阅读完这个问题之后,我想知道在关键任务行业中使用Haskell(或其他函数式编程语言)是否是一个好主意.

除了Erlang之外,大多数语言遵循命令式/合同设计范式(Ada,Eiffel,C++).

但功能性呢?

生成的代码很容易维护,稳定,并且在编译时它们的严格类型系统可以消除许多潜在的错误.或懒惰的评价比帮助更危险?还有其他安全缺陷吗?

Mar*_*cin 10

我想你可以.该语言似乎非常适合这种情况,假设您信任编译器足以在关键任务情况下使用它.

请记住,在关键任务情况下,不仅是您的代码受到严格审查,而且所有其他组件也是如此.这包括编译器(Haskell编译器不是代码审查最简单的编译器),运行软件的适当认证硬件,编译代码的适当硬件,引导编译代码的编译器的硬件,地狱 - 甚至连线将所有这些连接到电网和插座中的电压变化频率.

如果您对查看关键任务软件质量感兴趣,我建议您查看NASA软件质量程序.它们是非常严格和正式的,但是这些家伙在太空中投入了数百万美元,希望它能够在相当恶劣的条件下生存并将它带到火星或任何地方,然后自动操作并将一些漂亮的火星人照片发回地球.

所以,你去了:Haskell对于关键任务情况很有用,但是在那里引导它的使用是一个昂贵的过程.