第一生活网

一种用于量子计算的语言

霍航健
导读 时间结晶。微波炉。钻石。这三个不同的东西有什么共同点?量子计算。与使用比特的传统计算机不同,量子计算机使用量子比特将信息编码为 0

时间结晶。微波炉。钻石。这三个不同的东西有什么共同点?

量子计算。与使用比特的传统计算机不同,量子计算机使用量子比特将信息编码为 0 或 1,或两者同时编码。再加上来自量子物理学的各种力量,这些冰箱大小的机器可以处理大量信息——但它们远非完美缺。就像我们的普通计算机一样,我们需要有正确的编程语言才能在量子计算机上正确计算。

对量子计算机进行编程需要了解一种叫做“纠缠”的东西,这是一种用于各种量子比特的计算乘数,可以转化为强大的能量。当两个量子位纠缠在一起时,一个量子位上的动作可以改变另一个量子位的值,即使它们在物理上是分开的,这引起了爱因斯坦对“远距离幽灵动作”的描述。但这种效力同样是弱点的来源。在编程时,丢弃一个量子位而不注意它与另一个量子位的纠缠可能会破坏存储在另一个量子位中的数据,从而危及程序的正确性。

麻省理工学院计算机科学与人工智能 (CSAIL) 的科学家旨在通过创建自己的量子计算编程语言 Twist 来解开谜团。Twist 可以通过经典程序员可以理解的语言来描述和验证量子程序中纠缠了哪些数据。该语言使用了一个称为纯度的概念,它强制不存在纠缠并产生更直观的程序,理想情况下错误更少。例如,程序员可以使用 Twist 表示程序作为垃圾生成的临时数据不会与程序的答案纠缠在一起,从而可以安全地丢弃。

虽然新兴领域可能会让人感觉有点浮华和未来感,但脑海中浮现出巨大的金属机器的图像,但量子计算机具有在经典无法解决的任务中实现计算突破的潜力,例如密码学和通信协议、搜索以及计算物理和化学。计算科学的主要挑战之一是处理问题的复杂性和所需的计算量。经典的数字计算机需要非常大的指数位数才能处理这样的模拟,而量子计算机可能会使用非常少量的量子位来做到这一点——如果有正确的程序的话。

“我们的语言 Twist 允许开发人员通过明确说明何时不得与另一个量子位纠缠来编写更安全的量子程序,”麻省理工学院博士说。学生 Charles Yuan,一篇关于 Twist 的论文的主要作者。“因为理解量子程序需要理解纠缠,我们希望 Twist 能够为语言铺平道路,让程序​​员更容易应对量子计算的独特挑战。”