初探微软研究型语言Spec
创始人
2024-04-27 13:10:34
0

Spec#是一种基于C#的研究型语言。它是基于契约优先的原则,即函数的前提条件和后置条件都以声明的方式定义。其他的特性还包括类不变量、非空引用类型和加强的静态分析功能。

我们可以在.NET 4中找到一些重要的特性,比如:代码契约,Spec#当前的研究状况比较尴尬。最近,微软声明放宽对它的约束,但也仅是一点而已。获取了微软研究共享许可协议后,Spec#的源代码已经可以从CodePlex站点上下载了。这份许可仅限于非商业用途。

与Spec#配套的有Boogie,一种用于代码验证的中间语言。Boogie并非仅限于.NET,它还支持其他的语言,包括“HAVOC、C语言的验证程序vcc、Dafny语言和它的验证程序以及并发语言Chalice”。

Boogie还是一种工具的名称。该工具接受Boogie语言的输入,并随意地推断给定Boogie程序的一些不变量,接着生成验证条件,然后传给SMT解算程序。默认的SMT解算程序是Z3。

Boogie已经基于微软公共许可正式发布,它符合开源标准。

当前微软把代码契约定位为今后的发展方向,这意味着Spec#未来很可能不会有太大的发展。

 

【编辑推荐】

  1. 新型动态编程语言Snow简介
  2. Google推出新编程语言Simple 用于Android开发
  3. 微软为SOA打造全新编程语言:D语言?
  4. 浅析.NET平台编程语言的未来走向
  5. Erlang面向分布与并发的编程语言

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...