我在考虑安全Haskell,我想知道我有多信任它?
我是一个编写可编程游戏的小黑客(想想Robocode),我允许其他人编写自己的实体来互相竞争.大多数情况下,用户将在私人计算机上运行一些不受信任的程序.在运行之前可能会检查不受信任的代码.
我是几个客户使用的应用程序的程序员.我提供了一个API,以便他们可以扩展功能并鼓励我的用户分享他们的插件.用户社区规模很小,大部分时间都存在相互信任,但有时候有人正在开展一个绝密的客户项目,任何数据泄漏都将是灾难性的.
我是...谷歌(或Facebook,雅虎等),并希望允许我的客户编写他们的电子邮件帐户脚本.脚本已上载并在我的服务器上运行.任何访问违规都是致命的.
根据经验,我会说安全的Haskell试图大致得到C#安全子集的位置.对于您的场景:
关于undefined的注释:在操作上,它通过抛出异常来停止函数返回值,错误函数也是如此.从表面上看,它被认为是"底层"价值.现在,即使安全的Haskell不允许未定义和错误,函数仍然无法返回,只需循环无休止.无尽的循环也是最底层的.所以安全的Haskell保证了类型和内存的安全性,但并不试图保证函数终止.当然,安全Haskell是图灵完成的,因此通常不可能证明终止.此外,由于内存不足会引发异常,因此函数可能会终止.最后,模式匹配错误抛出异常.如此安全的Haskell无法消除任何类型的底部,也可能允许显式的未定义和错误.
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |