量子计算机的第一种直观编程语言

为量子计算机编程变得越来越容易:苏黎世联邦理工学院的计算机科学家设计了第一种编程语言,可以像传统计算机那样简单、可靠和安全地为量子计算机编程。“为量子计算机编程对研究人员来说仍然是一个挑战,”麻省理工学院安全、可靠和智能系统实验室(SRI)的计算机科学教授马丁·维切夫说,“这就是为什么我对我们现在可以继续苏黎世理工学院在发展量子计算机和编程语言方面的传统感到如此兴奋。”

他补充道:“我们的量子编程语言Silq允许程序员更好地利用量子计算机的潜力,因为它的代码更紧凑、更快、更直观,而且对程序员来说更容易理解。”本周,Vechev将在编程语言大会PLDI 2020上向该领域的其他专家介绍Silq。为了促进讨论、采用和进一步开发,他和他的团队还在自己的网站上发布了Silq。

量子计算在过去的十年中得到了越来越多的关注,因为这些根据量子物理原理运行的计算机具有巨大的潜力。今天,大多数研究人员相信,有一天这些计算机将能够比传统计算机更快地解决某些问题,因为它们使用纠缠量子态来进行计算,在纠缠量子态中,不同的信息位在某个时间点重叠。这意味着在未来,量子计算机将能够有效地解决传统计算机无法解决的问题。

这种量子优势还有待最终的证明。然而,最近已经取得了一些重大的技术进展。2019年夏末,一台量子计算机成功地解决了一个问题——尽管是一个非常具体的问题——速度比最快的经典计算机还要快。

对于某些“量子算法”,即计算策略,也知道他们比经典算法更快,而经典算法没有开发量子计算机的潜力。然而,到目前为止,这些算法仍然不能在现有的量子硬件上计算,因为量子计算机目前仍然太容易出错。

表达程序员的意图

利用量子计算的潜力不仅需要最新的技术,而且需要一种描述量子算法的量子编程语言。原则上,算法是解决问题的“配方”;一种程序设计语言描述算法,以便计算机能够执行必要的计算。

如今,量子编程语言与特定的硬件紧密相连;换句话说,它们精确地描述了基本电路的行为。对于程序员来说,这些“硬件描述语言”既麻烦又容易出错,因为单个的编程指令必须非常详细,从而明确地描述实现量子算法所需的细节。

这就是维切夫和他的团队开发Silq的原因。“Silq是第一个量子编程语言,不是设计主要围绕建设和硬件的功能,但在程序员的心态当他们想要解决一个问题——没有要求他们理解计算机体系结构和实现的每一个细节,”本杰明Bichsel说,博士生在Vechev集团监督Silq的发展。

计算机科学家将从特定类型的计算机的技术细节中抽象出来的计算机语言称为高级编程语言。Silq是量子计算机的第一种高级编程语言。高级编程语言表达能力更强,这意味着它们可以用更少的代码描述甚至复杂的任务和算法。这使得它们对于程序员来说更容易理解和使用。它们也可以用于不同的计算机体系结构。

通过自动不计算消除误差

Silq给量子编程语言带来的最大的创新和简化涉及到一直困扰量子编程的一个错误源。计算机通过几个中间步骤计算任务,从而创建中间结果或临时值。

为了减少内存,传统计算机会自动擦除这些值。计算机科学家称之为“垃圾收集”,因为多余的临时值会被处理掉。

在量子计算机的情况下,这种处理由于量子纠缠而变得更加棘手:先前计算的值会与当前的值交互,从而干扰正确的计算。因此,在量子计算机上清理这些临时值需要一种更高级的技术,即所谓的非计算技术。

Bichsel解释说:“Silq是第一种能够自动识别和删除不再需要的值的编程语言。”计算机科学家们通过运用他们对经典编程语言的知识实现了这一点:他们的自动非计算方法只使用不受任何特殊量子操作影响的编程命令——用Vechev和Bichsel的话说,它们是“qfree”。

“Silq在优化量子计算机编程方面是一项重大突破;这不是发展的最后阶段。目前仍有许多有待解决的问题,但由于Silq更容易理解,Vechev和Bichsel希望能够刺激量子编程语言的进一步发展,以及新的量子算法的理论和发展。

“我们的四人团队经过两年的努力,结合了语言设计、量子物理和实现方面的不同专业知识,取得了突破。”如果其他研发团队接受我们的创新,这将是一个巨大的成功,”Bichsel说。


其他人还浏览了:



公众号

关注公众号,获取一手资讯

“ 量子计算机的第一种直观编程语言 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注