量子计算机的编程变得越来越容易:苏黎世联邦理工学院的计算机科学家设计了第一种编程语言,可以像传统计算机一样简单,可靠且安全地对量子计算机进行编程。ETH的安全,可靠和智能系统实验室(SRI)的计算机科学教授Martin Vechev说:“对量子计算机进行编程仍然是研究人员面临的挑战,这就是为什么我如此兴奋以至于我们现在可以继续苏黎世ETH的传统而感到兴奋。量子计算机和编程语言的发展。”
在过去的十年中,量子计算一直受到越来越多的关注,因为这些根据量子物理学原理运行的计算机具有巨大的潜力。如今,大多数研究人员认为,这些计算机将有一天比传统计算机更快地解决某些问题,因为它们执行缠结量子态,其中各种信息在特定的时间点重叠,因此可以进行纠缠。这意味着,将来,量子计算机将能够有效地解决传统计算机无法在合理时间内解决的问题。
这种量子至上性仍有待最终证明。但是,最近已经取得了一些重大的技术进步。在2019年夏末,一台量子计算机比最快的经典计算机更快地成功解决了一个问题(尽管是非常具体的问题)。
对于某些“量子算法”,即计算策略,还众所周知,它们比不利用量子计算机潜力的经典算法要快。但是,到目前为止,由于量子计算机当前仍然太容易出错,因此仍无法在现有的量子硬件上计算这些算法。
表达程序员的意图
利用量子计算的潜力不仅需要最新的技术,而且还需要一种描述量子算法的量子编程语言。原则上,算法是解决问题的“配方”。一种编程语言描述了该算法,以便计算机可以执行必要的计算。
如今,量子编程语言已与特定硬件紧密联系在一起。换句话说,它们精确地描述了底层电路的行为。对于程序员而言,这些“硬件描述语言”既麻烦又容易出错,因为各个编程指令必须非常详细,从而明确描述实现量子算法所需的细节。
Vechev和他的团队正是在此发展Silq。“ Silq是第一种量子编程语言,其主要设计目的不是围绕硬件的结构和功能,而是在程序员想要解决问题时的心态—无需他们了解计算机体系结构和实现的每个细节。 ”,Vechev研究小组的博士生Benjamin Bichsel说,他正在监督Silq的开发。
计算机科学家将从特定类型计算机的技术细节中抽象出来的计算机语言称为高级编程语言。Silq是量子计算机的第一种高级编程语言。高级编程语言更具表现力,这意味着它们可以用更少的代码描述甚至复杂的任务和算法。这使它们更易于理解,并且更易于程序员使用。它们也可以与不同的计算机体系结构一起使用。
通过自动计算消除错误
Silq给量子编程语言带来的最大创新和简化,是一直困扰量子编程的错误源。计算机通过几个中间步骤来计算任务,这些步骤会创建中间结果或临时值。
为了释放内存,传统计算机会自动删除这些值。由于多余的临时值已被丢弃,计算机科学家将其称为“垃圾收集”。
在量子计算机的情况下,由于量子纠缠,这种处理更加棘手:先前计算的值可能与当前值发生交互,从而干扰正确的计算。因此,在量子计算机上清除这些临时值需要一种更高级的所谓的非计算技术。
“ Silq是第一种自动识别并清除不再需要的值的编程语言,” Bichsel解释说。该计算机科学家通过运用自己的经典编程语言的知识实现这一点:他们的自动uncomputation方法只使用编程是没有任何特殊的量子的命令操作,它们是“qfree”,作为Vechev和Bichsel发言权。
Vechev说:“在优化量子计算机的编程方面,Silq是一项重大突破;这不是开发的最后阶段。” 仍然存在许多悬而未决的问题,但是由于Silq易于理解,Vechev和Bichsel希望刺激量子编程语言的进一步发展以及新量子算法的理论和发展。
Bichsel说:“ 经过两年的工作,我们的四人团队在语言设计,量子物理学和实现方面的不同专业知识相结合,取得了突破。如果其他研发团队接受我们的创新,那将是巨大的成功。” 。