2009-07-18 96 views
6

阅读完this question之后,我只是想知道在关键任务行业中使用Haskell(或其他函数式编程语言)是个好主意。除了Erlang之外,大多数语言都遵循命令/设计合同范例(Ada,Eiffel,C++)。核电站的功能编程?

但是功能性的呢?

由此产生的代码易于维护,稳定并且大量的潜在错误可以在编译时被严格的类型系统消除。 或者懒惰评估比有帮助更危险?还有其他安全缺陷吗?

回答

10

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

请记住,在任务危急的情况下,不仅您的代码正在审查中,而且所有其他组件也一样。这包括编译器(Haskell编译器不是编程审查中最简单的编译器之一),运行软件的适当认证硬件,编译代码的适当硬件,引导编译编译代码的编译器的硬件,甚至是线程将所有这些连接到电网和插座中电压变化的频率。

如果您有兴趣查看关键任务软件质量,我建议您查看NASA software quality procedures。他们是非常严格和正式的,但是这些家伙在太空中投入了数百万美元,希望它能够在相当艰难的条件下生存下来,并将它带到火星或任何地方,然后自动运行,并发送一些令人印象深刻的火星人照片。

所以,你去了:Haskell适合任务危急的情况,但它将是一个昂贵的过程来引导它的使用。