写点什么

MIT 发布量子编程语言 Twist,旨在填补量子软件的空白

  • 2022-03-14
  • 本文字数:1656 字

    阅读完需:约 5 分钟

MIT 发布量子编程语言 Twist,旨在填补量子软件的空白

麻省理工学院计算机科学与人工智能实验室(CSAIL)的一个研究小组创建了一种新的量子计算编程语言,名为 Twist。Twist 的设计目标是让开发者更容易识别哪些数据是纠缠在一起的,从而创建错误更少、更容易调试的量子计算程序。


Twist 项目地址:https://spectrum.ieee.org/quantum-programming-language-twist


Twist 的基础在于识别量子纠缠。量子纠缠是一种物理现象,指的是量子计算机内两块数据的状态联结在一起。“当你操作处于纠缠状态的一块数据时也可能会影响另一块。你可以用这种特性来实现强大的量子算法,但它也让你写的程序很难直观推理,并容易引入微妙的错误。”上面这段话来自麻省理工学院 CSAIL 计算机科学博士生、Twist 论文的主要作者 Charles Yuan,这篇论文发表在《ACM 编程语言》杂志上。


Charles Yuan 说:“Twist 提供了一些特性,让开发者可以确定哪些数据是纠缠的,哪些不是。”“在程序中加入关于纠缠的信息后,你就可以检查量子算法的实现是否正确。”


该语言的特性之一是一个类型系统,使开发者能够指定他们程序中的哪些表达式和数据片断是纯粹的。据 Yuan 说,一个纯粹的数据片断是没有纠缠的,因此不存在可能由纠缠造成的错误和不直观的效果。Twist 还加入了纯度断言运算符来确认一个表达式不存在与任何其他数据的纠缠关系,与之搭配的还有静态分析和运行时检查,可以用来验证这些断言。


为了评估这种语言,该团队用 Twist 为一组著名的量子算法编写了一些程序,并在量子模拟器上执行了它们。“我们的实验表明,运行这些运行时检查的开销不超过运行基本程序的 3.5%,我们认为这是相当低的数字,相比语言给你的安全保证来说是一个很好的权衡,”Charles Yuan 说。


该团队还在一些程序中引入了一些小错误,并发现 Twist 可以检测到这些错误并拒绝错误的程序。“我们希望,当人们使用我们的语言或为他们的特定用例设计新的量子语言时,他们可以考察一下我们的工作,并认可纯度这个想法和将纠缠作为一种特性的设计,因为这将给他们带来更多信心,让他们确认自己的程序是正确的,而不必运行大量昂贵的模拟和测试,”Charles Yuan 说。


当许多研究人员专注于开发高效和优化的量子硬件时,Twist 旨在填补量子软件的空白。麻省理工学院副教授、Twist 论文的共同作者 Michael Carbin 说:“与我们看到的机器学习和其他高性能计算应用类似的是——在硬件发展的每一个新阶段,我们都会得到一个新的系统和很多潜在的新能力——如果我们能充分利用硬件能力,也许就能获得许多不可思议的机会。但几乎每次都是软件上的问题让人们难以利用硬件能力,也很难在不同的软件系统中部署和广泛使用这些硬件。”“我们正在做的工作是奠定一些基础,并试图找出一些可能提升这些类型设备可编程性的核心抽象。”


然而,该团队在构建 Twist 时面临的挑战之一是缺乏一个关于量子程序特征的标准。“多年来,人们已经开发了一些核心算法来解决个别复杂的任务,如整数因式分解等,但我们如何为它建立一个完整的软件生态系统却依旧是个问号,”Charles Yuan 说。“有了 Twist,我们就能够围绕我们对要在量子计算机上执行的任务的最佳共识来构建语言,并让编程语言对这些任务尽可能具有表达力。”


谈到局限,Twist 只能告诉你一个数据是否与其他数据纠缠在一起,但不能告诉你它们是如何纠缠在一起的。”袁说:“它们纠缠的具体方式将决定一个量子算法是否正确,但数据纠缠的方式有无数种。”给出这种更精细的细节是一个真正的挑战,这也是我们未来需要做的事情。”


该团队现在正在开发另一种语言,它建立在 Twist 的基础上,目标是应对其他量子现象(如相位和叠加)。但他们希望 Twist 将为创造更好的量子程序铺平道路。


Charles Yuan 说:“对于一位试图实现量子算法的开发者来说,他们需要语言中内置的工具来告诉他们程序中正在发生一些由纠缠引发的事情。”如果我们能够构建一系列核心语言原则和特性,让开发者可以推理纠缠现象,我们就可以减轻纠缠带来的认知负担,并让开发者写出更符合直觉的程序。”


原文链接:


https://spectrum.ieee.org/quantum-programming-language-twist

2022-03-14 15:143677
用户头像
李冬梅 加V:busulishang4668

发布了 983 篇内容, 共 588.7 次阅读, 收获喜欢 1143 次。

关注

评论

发布
暂无评论
发现更多内容

看动画学算法之:排序-插入排序

程序那些事

Java 数据结构 算法 插入排序

推荐系统大规模特征工程与FEDB的Spark基于LLVM优化

范式AI云

spark Sparksql 推荐系统 LLVM FEDB

IDC2020 Q1通用服务器数据发布,浪潮信息成绩喜人

Geek_116789

MobTech袤博与百度战略签约 携手布局数据智能产业新蓝图

Geek_116789

在前端如何玩转 Word 文档

阿宝哥

html markdown word

Mysql插入百万条数据

Java小咖秀

MySQL 运维 数据

第6周-作业1

seng man

设计模式六大原则

刘志刚

设计原则

三大 OSS 缓存加速系统巅峰对决

苏锐

hadoop cache JuiceFS JindoFS Performance

微信小程序使用GoEasy实现websocket实时通讯

GoEasy消息推送

小程序 websocket 即时通讯

人人都需要一份自己的「使用说明书」

非著名程序员

程序员 程序人生 提升认知 独立思考 自我思考

吴恩达推荐笔记:22张图总结深度学习全部知识

程序员生活志

学习 吴恩达

时间去哪了?

escray

我在项目中是这样配置Vue的

前端有的玩

Java Vue 大前端 框架设计

计算机网络基础(一)---计算机网络概览篇

书旅

php laravel 计算机网络

自动化测试首先是一种工作文化

wangwei1237

自动化测试 测试文化

《重学 Java 设计模式》PDF 出炉了 - 小傅哥,肝了50天写出18万字271页的实战编程资料

小傅哥

Java 设计模式 小傅哥 重构 代码质量

第6周-作业2-总结

seng man

女员工被阿里录取工资二万六,辞职时被领导挽留:给你4万留下

程序员生活志

程序员 阿里

阿里拍卖,能不能拍到点儿上?

ToB行业头条

腾讯的ToB梦想

ToB行业头条

2020,是中国SaaS行业的机遇之年?

ToB行业头条

Spring5-Reactor函数式编程

小技术君

spring reactor Spring5 springboot

为什么我们需要制品管理?

Man

DevOps nexus 制品库管理 Artifactory

laravel redis队列不执行

kaer

laravel redis Queue

抢滩新基建,百度还会输给阿里和腾讯吗?

ToB行业头条

讲烂了的mysql,今天再给大家重温一下

爱嘤嘤嘤斯坦

Java MySQL 数据库 编程 mysql事务

Worktile完成新一轮融资,将发力研发管理赛道

易成研发中心

融资

CAP原理简述

刘志刚

为什么单元测试不是持续交付的唯一答案

禅道项目管理

持续集成 单元测试

​中国SaaS处在什么阶段?

ToB行业头条

MIT 发布量子编程语言 Twist,旨在填补量子软件的空白_AI&大模型_Rina Diane Caballar_InfoQ精选文章