首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Haskell函数可以通过正确性属性进行验证/模型检查/验证吗?

Haskell函数可以通过正确性属性进行验证/模型检查/验证吗?
EN

Stack Overflow用户
提问于 2010-11-02 21:12:40
回答 10查看 12.3K关注 0票数 77

Are there any provable real-world languages?中的想法继续:

我不知道你是怎么想的,但是我已经厌倦了写那些我不能保证的代码。

在问了上面的问题并得到了惊人的回应之后(谢谢大家!)我决定缩小我的搜索范围,寻找一种可证明的、实用的Haskell方法。我选择Haskell是因为它实际上很有用(有为它编写的many web frameworks,这似乎是一个很好的基准测试)我认为它足够严格,functionally,它可能是可证明的,或者至少允许测试不变量。

这就是我想要的(但一直找不到)

我想要一个框架,可以查看Haskell函数,add,用伪代码编写:

代码语言:javascript
运行
复制
add(a, b):
    return a + b

  • 并检查某些不变量是否适用于每个执行状态。我更喜欢一些正式的证明,但是我会满足于模型检查器之类的东西。

在本例中,不变量是给定a和b的值,返回值始终是a+b和。

这是一个简单的例子,但我不认为像这样的框架是不可能存在的。当然,可以测试的函数的复杂性有一个上限(一个函数输入10个字符串肯定会花费很长时间!)但这将鼓励更仔细地设计函数,并且与使用其他正式方法没有什么不同。想象一下使用Z或B,当您定义变量/集合时,您一定要确保为变量提供尽可能小的范围。如果你的INT永远不会超过100,请确保你这样初始化它!像这样的技术和适当的问题分解应该-我认为-允许对像Haskell这样的纯函数式语言进行令人满意的检查。

我对正式的方法或Haskell还不是很有经验。如果我的想法是合理的,或者你认为haskell不合适,请告诉我。如果你推荐一种不同的语言,请确保它通过了"has-a-web-framework“测试,并且一定要阅读原始的question :-)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4077970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档