初探微软研究型语言Spec#

开发 开发工具
Spec#是一种基于C#的研究型语言。我们可以在.NET 4中找到一些重要的特性,比如:代码契约,即函数的前提条件和后置条件都以声明的方式定义。其他的特性还包括类不变量、非空引用类型和加强的静态分析功能。

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面向分布与并发的编程语言
责任编辑:佚名 来源: InfoQ
相关推荐

2009-06-24 10:13:30

Nemerle多范型语言

2013-10-11 10:17:21

微软开源市场

2020-02-18 15:53:09

AI 数据人工智能

2024-01-10 09:50:58

AI 写作功能CoWriterChatGPT

2021-12-28 17:32:38

网络安全

2022-09-15 12:41:43

微服务后端前端

2023-11-08 13:17:00

Python解释型语言

2016-11-21 16:01:48

SPEC

2019-12-17 11:40:44

Node.js模块前端

2022-07-01 09:20:00

模型研究论文

2018-04-25 09:06:32

Chrome浏览器语言

2012-02-09 09:00:54

汇编语言

2009-08-31 09:53:54

2009-12-03 14:53:49

.NET Framew

2009-02-24 10:07:58

开发微软盖茨

2021-06-30 15:18:23

机器学习人工智能神经科学

2013-12-10 11:16:53

内存数据库TechEd2013

2022-09-30 15:28:05

BERT语言模型自然语言

2019-11-05 15:10:36

RPMspec文件Linux
点赞
收藏

51CTO技术栈公众号