从Are there any provable real-world languages?中的想法继续:
我不知道你是怎么想的,但是我已经厌倦了写那些我不能保证的代码。
在问了上面的问题并得到了惊人的回应之后(谢谢大家!)我决定缩小我的搜索范围,寻找一种可证明的、实用的Haskell方法。我选择Haskell是因为它实际上很有用(有为它编写的many web frameworks,这似乎是一个很好的基准测试)和我认为它足够严格,functionally,它可能是可证明的,或者至少允许测试不变量。
这就是我想要的(但一直找不到)
我想要一个框架,可以查看Haskell函数,add,用伪代码编写:
add(a, b):
return a + b在本例中,不变量是给定a和b的值,返回值始终是a+b和。
这是一个简单的例子,但我不认为像这样的框架是不可能存在的。当然,可以测试的函数的复杂性有一个上限(一个函数输入10个字符串肯定会花费很长时间!)但这将鼓励更仔细地设计函数,并且与使用其他正式方法没有什么不同。想象一下使用Z或B,当您定义变量/集合时,您一定要确保为变量提供尽可能小的范围。如果你的INT永远不会超过100,请确保你这样初始化它!像这样的技术和适当的问题分解应该-我认为-允许对像Haskell这样的纯函数式语言进行令人满意的检查。
我对正式的方法或Haskell还不是很有经验。如果我的想法是合理的,或者你认为haskell不合适,请告诉我。如果你推荐一种不同的语言,请确保它通过了"has-a-web-framework“测试,并且一定要阅读原始的question :-)
https://stackoverflow.com/questions/4077970
复制相似问题