前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么2007年的图灵奖选择了模型检测技术

为什么2007年的图灵奖选择了模型检测技术

作者头像
田春峰-JCJC错别字检测
发布2019-02-14 09:56:26
8670
发布2019-02-14 09:56:26
举报
文章被收录于专栏:字根中文校对软件

为什么2007年的图灵奖选择了模型检测技术

像树一样成长,刚听完俞敏洪的在赢在中国的演讲----------题记

2007年图灵奖授予了在模型检测技术领域的奠基性贡献的科学家:Edmund M. Clarke、E Allen Emerson和Joseph Sifakis三位科学家。 什么是模型检测技术呢? 看看wikipedia 上的定义吧: Model checking is the process of checking whether a given structure is a model of a given logical formula. The concept is general and applies to all kinds of logics and suitable structures. A simple model-checking problem is testing whether a given formula in the propositional logic is satisfied by a given structure. 简单的说:是一套用于判断硬件和软件设计的理论模型是否满足规范的方法。这可真是个抽象的描述,看起来似乎离我们很遥远,遥远的只有像英特尔研究中心副总裁Andrew Chien才能对模型检测技术用一句话来评价:“英特尔和整个计算机工业都从他们的贡献中直接获益”。 那模型检测技术是不是离程序员也很遥远呢?图灵奖作为计算机界诺贝尔奖,如果把奖项颁给一个离程序员很遥远的技术,还真说不过去。 带着这个疑问,我浏览了wikipedia上长长的一窜模型检测技术的项目,还好不出所料,找到了下面几个项目: 1、Java Pathfinder :是一个用来认证java执行字节代码的系统。类似一个java虚拟机用来检测软件运行状态的验证系统。 2、Mono Model Checker :跑在mono 开源的.net平台上。用来自动侦查 CIL 字节码错误的程序。目前的版本支持CIL的死锁 deadlocks 和 断言冲突 assertion violation 。 3、对于c++ 感兴趣的人还可以看看这两个项目: State Exploring Assembly Model CheckerBounded Model Checking for ANSI-C 。 举个例子吧,在开发中,利用测试库junit 和 dotunit 写测试代码已经逐渐普及开了,比如下面这段:

代码语言:javascript
复制

注意上面加黑的这句: assert( (toppings.size()==0) ); 。 这段代码我们用来检测:pizza.getToppings()  的大小是否为0。那么模型检测和上面的测试代码有什么不同呢? 不同点在于:现在的测试库用来判断结果 , 而模型检测用来判断过程(逻辑)是否符合要求。 我们常说,不但要关注结果,更要关注过程。模型检测就是对过程的关注。 无疑,现在写程序的时候,模型检测的过程,是由广大程序员完成的。如果这个过程可以由机器完成的话?那不是就是实现了自动编程吗?据说word的创始人开发者正在干这样的事儿... ,不知道这个老头有生之年能不能实现他的理想。 当然,我也相信在更高级的人工智能技术中,模型检测技术会大展拳脚。 又是个遥远的事情,洗洗睡吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2008年02月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档