微软开源了其量子计算编程语言 Q#

阅读数:4904 2019 年 5 月 15 日 07:00

微软开源了其量子计算编程语言Q#

在 Build 2019 会议上,微软宣布将于今年夏天在 GitHub 部分开源其量子开发工具包(Quantum Developer Kit),包括 Q#编译器和量子模拟器。

微软已经发布了其量子开发工具包,并于 2017 年底提供给开发人员,同时还计划开发自己的量子计算机

与其他已经加入量子竞赛的公司(谷歌、IBM 等等)不同,微软选择创建新的编程语言,为了与 C#和 F#保持一致,该语言被称为 Q#,用来描述量子计算

我们的高级编程语言 Q#旨在应对量子信息处理的挑战,它集成于一个软件栈中,可以把量子算法编译为对量子计算机的原始操作。

Q#是特定领域的编程语言,具有原生的类型系统,除了“经典的”原始类型外,还包括量子抽象的直接表示,如量子比特(qubit)、量子运算和运算符等等。类似的,它的流控制指令,除了 for 和 repeat 循环、返回语句等等,还包括一些只能在量子操作中使用的语句。这些语句包括 using(允许获取一个量子比特)和 borrowing(允许临时访问量子比特)。

以下是一个 Q#程序示例,该程序通过查看一个给定状态来设置一个量子比特,如果它不处于所需的状态,那么就把它翻转:

复制代码
namespace Quantum.Bell {
open Microsoft.Quantum.Primitive;
operation Set (desired: Result, q1: Qubit) : () {
body {
let current = M(q1);
if (desired != current) {
X(q1);
}
}
}
}

微软量子模拟器利用 16GB 内存可以最多模拟 30 个逻辑量子比特。微软声称,在可以使用的时候,为模拟器编写的程序可以在他们的量子计算机上无需修改地运行,。

在硬件方面,微软正在利用拓扑量子比特开发拓扑量子处理器。拓扑量子比特在其拓扑结构中全局化地存储信息,就像在字符串所发生的一样,只需要查看全局情况而不是任何局部属性,就可以判定它是否纠缠。

微软表示,其量子开发工具包的开源将主要惠及那些希望为这个不断发展领域的发展作出贡献的开发人员,以及所有那些需要使用开源软件的机构,他们可以有条件地使用 Q#来进行他们的研究。

阅读英文原文: Microsoft Open-sources Q#, its Language for Quantum Computing

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论