Q*证书

Q*证书

使用编写的查询编译器这个Coq证明助理
以及用于实现和验证查询编译器的平台。

什么是Q*cert?

Q*cert是一个查询编译器:它接受一些输入查询并生成执行代码。它可以编译多种源查询语言,例如SQL和OQL的(子集)。它可以为多个目标后端,如Java、JavaScript、Cloudant和Spark。

Q*cert实现了几种对编译和优化。它们各自的语义是使用Coq证明助手精确定义。使用Coq允许证明这些语言的属性,以验证从一个转换到另一个,并检查优化都是正确的。

由定义明确的小组件构成的体系结构使Q*cert是实现或验证新查询的一个很有前途的平台语言和开发新的优化。

Q*证书规范

编译器的代码是开源的github.

编译器体系结构和编译路径在中进行了描述这个编译器司机可以用下图表示:

编译路径

支持的语言包括:

出版物

关于Q*证书某些新方面的附加信息研究成果见研究出版物:

相关项目

将形式验证技术应用于查询语言和编译器是一个活跃的研究领域。以下项目与我们的工作密切相关:

信用

Q*cert最初的源代码是在IBM T.J.Watson开发的研究中心:Josh Auerbach、Stefan Fehrenbach、Martin Hirzel,Louis Mandel、Avraham Shinnar和杰罗姆西蒙.