第一种直观的量子计算机编程语言--苏黎世ETH

2020-06-20 03:57:00

在追求强大的量子计算机方面,最近已经取得了几项技术进步。现在,来自苏黎世理工大学的计算机科学家在编程语言领域取得了重要突破:他们的量子语言是同类语言中第一个与经典计算机语言一样优雅、简单和安全的语言。

量子计算机的编程变得越来越容易:苏黎世理工大学的计算机科学家设计了第一种编程语言,可以用来对量子计算机进行编程,就像经典计算机一样简单、可靠和安全。ETH安全、可靠和智能系统实验室(SRI)的计算机科学教授马丁·韦切夫(Martin Vechev)表示:“对量子计算机编程对研究人员来说仍然是一项挑战,这就是为什么我如此兴奋,我们现在可以继续苏黎世大学在量子计算机和编程语言开发方面的传统。”

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

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

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

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

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

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

Silq允许比使用现有语言更好地利用量子计算机的潜力。马丁·维切夫(Martin Vechev),计算机科学教授。

这就是Vechev和他的团队开发Silq的原因。Vechev团队的博士生本杰明·比切尔(Benjamin Bichsel)正在监督Silq的开发,他说:“Silq是第一种主要不是围绕硬件的结构和功能而设计的量子编程语言,而是在程序员想要解决问题时根据他们的思维模式设计的,而不需要他们理解计算机体系结构和实现的每个细节,”Vechev团队的博士生本杰明·比切尔(Benjamin Bichsel)正在监督Silq的开发。

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

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

为了释放内存,经典计算机会自动擦除这些值。计算机科学家将此称为“垃圾收集”,因为多余的临时值会被处理掉。

在量子计算机的情况下,由于量子纠缠,这种处理更加棘手:之前计算的值可能会与当前的值相互作用,干扰正确的计算。因此,在量子计算机上清理这样的临时值需要一种更先进的所谓的非计算技术。

“Silq是第一种自动识别和擦除不再需要的值的编程语言,”Bichsel解释说。计算机科学家通过应用他们对经典编程语言的知识实现了这一点:他们的自动计算方法只使用没有任何特殊量子操作的编程命令,正如韦切夫和比切尔所说的那样,它们是“qfree”的。

“就优化量子计算机的编程而言,Silq是一个重大突破;它不是开发的最后阶段,”Vechev说。仍然有许多悬而未决的问题,但由于Silq更容易理解,Vechev和Bichsel希望既能刺激量子编程语言的进一步发展,也能刺激新量子算法的理论和开发。

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

Bichsel B,Baader M,Gehr T,Vechev M.Silq:一种具有安全计算和直观语义的高级量子语言。PLDI 2020:第41届ACM SIGPLAN编程语言设计与实现会议论文集,2020年6月,286-300。DOI:10.1145/3385412.3386007