
麻省理工学院计算机科学与人工智能实验室(CSAIL) 的一组研究人员创建了 Twist,这是一种用于量子计算的新编程语言。Twist旨在使开发人员更容易识别哪些数据被纠缠在一起,从而使他们能够创建错误更少且更易于调试的量子程序。
Twist 的基础在于识别纠缠,这是一种量子计算机内两条数据的状态相互关联的现象。“每当你对一条纠缠的数据执行操作时,它可能会影响另一条数据。你可以用它来实现强大的量子算法,但它也使得推理你编写的程序变得不直观,并且很容易引入细微的错误,” 论文的主要作者Charles Yuan博士说。
“Twist所做的是,它提供了一些功能,允许开发人员知道哪些数据是纠缠的,哪些不是,”Yuan说。“通过在程序中包含有关纠缠的信息,您可以检查量子算法是否正确实现。”
该语言的一个特性是类型系统,它使开发人员能够指定他们程序中的哪些表达式和数据片段是纯的。据Yuan说,一条纯净的数据是没有纠缠的,因此没有纠缠可能导致的错误和不直观的影响。Twist 还具有纯度断言运算符来确认表达式没有与其他任何数据片段的纠缠,以及静态分析和运行时检查来验证这些断言。
为了评估该语言,该团队在 Twist 中为一组著名的量子算法编写程序,并在量子模拟器上执行它们。“我们进行的实验表明,与运行基本程序相比,运行这些运行时检查的开销不超过 3.5%,我们认为这是相当低的,并且可以很好地权衡语言为您提供的安全保证,”Yuan说。
该研究团队还为一些程序引入了小错误,发现Twist可以检测到这些错误并拒绝错误的程序。“我们希望,当人们使用我们的语言或为他们的特定用例设计新的量子语言时,他们将能够看到我们的工作,并说他们希望纯度和纠缠作为一个功能,因为它会让他们更有信心,相信他们的程序是正确的,而无需运行大量昂贵的模拟和测试,”Yuan说。
虽然许多研究人员专注于构建高效和优化的量子硬件,但Twist旨在填补量子软件的空白。“与我们在机器学习和其他高性能计算应用程序中看到的情况有一些相似之处 - 随着硬件开发的每个新阶段,我们都会获得一个新系统和潜在的新功能 - 通过利用硬件可能有很多令人难以置信的机会。但它几乎总是阻碍人们访问该硬件并能够在不同的软件系统中部署和广泛使用它的软件,”麻省理工学院副教授,论文的合著者Michael Carbin说。“我们正在做的很多工作是奠定一些基础,并试图梳理出可能使这些类型的设备更具可编程性的一些核心抽象。”
然而,团队在构建 Twist 时面临的挑战之一是缺乏量子程序应该是什么样子的标准。“多年来,人们已经开发出核心算法来解决单独的复杂任务,例如整数分解,但目前还不清楚我们如何为它构建一个完整的软件生态系统,”Yuan说。“通过 Twist,我们能够围绕我们想要在量子计算机上执行的任务的最佳共识构建语言,并使其尽可能具有这些任务的表达力。”
在限制方面,Twist 只能告诉您一条数据是否与其他数据条纠缠在一起,而不能告诉您它们是如何纠缠的。“它们纠缠的确切方式将决定量子算法是否正确,但数据纠缠的方式有无数种,”Yuan说。“能够提供更精细的细节是一个真正的挑战,这是我们未来需要做的事情。”
该团队现在正在研究另一种基于Twist的语言,以解决相位和叠加等其他量子现象,但他们希望 Twist能够为创建更好的量子程序铺平道路。
“对于试图实现量子算法的开发人员来说,他们需要语言中内置的工具来告诉他们程序中正在发生的事情是由纠缠引起的,”Yuan说。“如果我们能够构建允许开发人员推理纠缠的核心语言原则和功能,我们就可以让纠缠减少认知负担,并允许开发人员编写更直观的程序。”
(论文参考链接:https://dl.acm.org/doi/10.1145/3498691)
---煤油灯科技victorlamp.com翻译整理---