量子编程的突破:量子母亲とが话しています免费在追求强大的量子计算机方面,最近取得了一些技术进步。现在,来自苏黎世联邦理工学院的计算机科学家在编程语言领域取得了重要的突破:他们的量子语言是第一个与经典计算机语言一样优雅、简单和安全的量子语言。
为量子计算机编程正变得越来越容易:苏黎世联邦理工学院(ETH Zurich)的计算机科学家设计了第一种编程语言,可以用来为量子计算机编程,就像经典计算机一样简单、可靠和安全。“对研究人员来说,编程量子计算机仍然是一个挑战,”ETH安全、可靠和智能系统实验室(SRI)的计算机科学教授Martin Vechev说,“这就是为什么我如此兴奋,我们现在可以继续苏黎世ETH在量子计算机和编程语言的发展传统。”
苏黎世联邦理工学院的计算机科学家开发了第一种量子编程语言,能够优雅、简单、安全地解决复杂的计算。信贷:苏黎世联邦理工学院
他补充说:“我们的量子编程语言Silq允许程序员比现有语言更好地利用量子计算机的潜力,因为代码更紧凑、更快、更直观、更容易理解。”本周,Vechev将在PLDI 2020(编程语言会议)上向该领域的其他专家介绍Silq。为了促进讨论、采用和进一步开发,他和他的团队还在自己的网站(Silq .ethz.ch)上发布了Silq。
量子计算在过去十年中受到越来越多的关注,因为这些计算机根据量子物理的原理运行,具有巨大的潜力。今天,大多数研究人员相信,这些计算机总有一天能够比传统计算机更快地解决某些问题,因为它们使用纠缠量子态来进行计算,在纠缠量子态中,各种信息在某个时间点上重叠。这意味着在未来,量子计算机将能够有效地解决经典计算机在合理的时间范围内无法解决的问题。
这种量子霸权还有待证实。然而,最近已经取得了一些重大的技术进步。2019年夏末,一台量子计算机成功地解决了一个问题——尽管是一个非常具体的问题——比最快的经典计算机更快。
对于某些“量子算法”,即计算策略,众所周知它们比没有利用量子计算机潜力的经典算法更快。然而,到目前为止,这些算法仍然不能在现有的量子硬件上进行计算,因为量子计算机目前仍然太容易出错。
利用量子计算的潜力不仅需要最新的技术,还需要一种量子编程语言来描述量子算法。原则上,算法是解决问题的“配方”;程序设计语言描述算法,使计算机能够执行必要的计算。
如今,量子编程语言与特定的硬件紧密相连;换句话说,它们精确地描述了潜在电路的行为。对于程序员来说,这些“硬件描述语言”既麻烦又容易出错,因为每个编程指令必须非常详细,从而明确地描述实现量子算法所需的细节。
这就是Vechev和他的团队开发Silq的地方。“Silq是第一种量子编程语言,它不是主要围绕硬件的结构和功能设计的,而是基于程序员想要解决问题时的思维模式——不需要他们理解计算机架构和实现的每一个细节,”Benjamin Bichsel说,他是Vechev小组的博士生,负责监督Silq的开发。
计算机科学家把从特定类型计算机的技术细节中抽象出来的计算机语言称为高级编程语言。Silq是量子计算机的第一种高级编程语言。高级编程语言的表达能力更强,这意味着它们可以用更少的代码描述复杂的任务和算法。这使得它们对程序员来说更容易理解和使用。它们也可以用于不同的计算机架构。
Silq给量子编程语言带来的最大创新和简化涉及到一直困扰量子编程的错误来源。计算机通过几个中间步骤来计算任务,从而产生中间结果或临时值。
为了减少内存占用,传统计算机会自动清除这些值。计算机科学家称之为“*收集”,因为多余的临时值会被处理掉。
在量子计算机的情况下,由于量子纠缠,这种处理更加棘手:以前计算的值可以与当前的值交互,从而干扰正确的计算。因此,在量子计算机上清理这些临时值需要一种更先进的所谓“不计算”技术。
Bichsel解释说:“Silq是第一种能够自动识别和删除不再需要的值的编程语言。计算机科学家们通过运用他们对经典编程语言的知识实现了这一点:他们的自动非计算方法只使用不涉及任何特殊量子操作的编程命令——正如Vechev和Bichsel所说,它们是“qfree”。
“Silq是优化量子计算机编程方面的重大突破;这还不是发展的最后阶段。”还有很多悬而未决的问题,但由于Silq更容易理解,Vechev和Bichsel希望刺激量子编程语言的进一步发展,以及新的量子算法的理论和发展。
“经过两年的努力,我们的四人团队取得了突破,这要归功于我们在语言设计、量子物理和实现方面的不同专业知识。如果其他研发团队接受我们的创新,这将是一个巨大的成功,”Bichsel说。
参考文献:Benjamin Bichsel、Maximilian Baader、Timon Gehr和Martin Vechev的“Silq:具有安全不可计算和直观语义的高级量子语言”,第41届ACM编程语言设计与实现SIGPLAN会议记录,2020年6月,286-300。DOI: 10.1145/3385412.3386007