量子编程迎重大突破!量子计算机领域第一种高级编程语言Silq诞生-阿里云开发者社区

开发者社区> 开发与运维> 正文

量子编程迎重大突破!量子计算机领域第一种高级编程语言Silq诞生

简介: 迄今为止,对于我们很多大众而言,量子计算机依然神秘依然高大上依然可望而不可即。而对于业内人士而言,量子计算机和量子技术的研究已经不是一天两天了,科学家们的研究不亦乐乎,成果进展也可喜。比如,编程语言领域就迎来了一个重要的突破:第一种高级编程语言 Silq问世。之所以说它是第一种高级编程语言,就是因为这个编程语言是量子计算机领域的,不是目前的在很低的抽象级别工作的编程语言,也不是我们普通认识学习的编程语言。

迄今为止,对于我们很多大众而言,量子计算机依然神秘依然高大上依然可望而不可即。而对于业内人士而言,量子计算机和量子技术的研究已经不是一天两天了,科学家们的研究不亦乐乎,成果进展也可喜。比如,编程语言领域就迎来了一个重要的突破:第一种高级编程语言 Silq问世。之所以说它是第一种高级编程语言,就是因为这个编程语言是量子计算机领域的,不是目前的在很低的抽象级别工作的编程语言,也不是我们普通认识学习的编程语言。



量子计算机领域的头号编程语言Silq,诞生于苏黎世联邦理工学院的计算机科学界人士之手。据设计这种编程语言的Vechev 教授表示,“与现有编程语言相比,量子编程语言 Silq 能够使程序员更好地利用量子计算机的潜力,因为这些代码更加紧凑、速度更快、更实用,并且更易于理解。”


不过,说起量子编程语言,可能有些关注技术的朋友知道,其实IT巨头微软公司曾经在几年前推出过一款量子计算编程语言Q#,一人客看资料显示,在2017年,微软推出量子计算开发套件,分为windows版本和macOS和linux版本,需要在VS或者VS code上使用。同时,微软也在GitHub上提供了量子编程语言Q#的demo。


而新出的这款高级编程语言Silq,则更直观更简洁,它能让你抽离在非常低的抽象水平上工作,安全,能避免出错,能进行自动计算,易于理解算法的作用,它比微软的量子编程语言Q#更直观更简洁,是更高层次的编程语言。经过测试,Silq生成的程序比Q#编程的程序短很多。


Silq这种量子编程语言,其设计主要不是要围绕硬件的结构和功能,而是更高层次地从程序员的角度,以人想解决问题时的思维方式为核心,所以并不是必须要求人们理解计算机体系的结构和实现的每一个细节,这个显然更高级,也更符合以人为中心的易理解性易用性目标。


学习过编程开发的朋友知道,软件或程序在运行计算的过程中,都会通过多个中间步骤来实现计算,而这些势必会创建中间结果或临时值。一般情况下,计算机会自动删除处理掉这些值,然而到了量子计算机领域,这一步会很糟糕。想必和一人客一样了解过量子基本常识的朋友知道,量子纠缠的概念和事实,由于量子纠缠,先前计算的值可能与当前的值相互作用,从而干扰正确的计算,而Silq这款量子编程语言则解决了这个问题,它属于量子计算机程序优化方面的重要突破。


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


量子计算机的编程门槛已经越来越低。苏黎世联邦理工学院的计算机科学家们设计出的第一种直观编程语言,能够像传统计算机语言一样简单、可靠且安全地在量子计算机上进行编程。


ETH 安全、可靠与智能系统实验室(SRI)计算机科学教授 Martin Vechev 表示,“目前,对量子计算机进行编程仍是困扰研究人员的一大挑战。正因为如此,我们才对苏黎世理工此次在量子计算机与编程语言发展方面获得的成果感到无比振奋。”



苏黎世联邦理工学院的计算机科学家们开发出第一种量子编程语言,能够优雅、简单且安全地解决多种复杂的计算问题。


他补充称,“我们的量子编程语言—Silq 将帮助程序员们更好地发挥量子计算机中蕴藏的潜力。对程序员们而言,Silq 代码更加紧凑、速度更快,也更直观且易于理解”。


据了解,本周,Vechev 将在 PLDI 2020 编程语言大会上将 Silq 介绍给量子计算领域的其他专家。为了促进与该语言相关的讨论、采用以及进一步发展,他和他的团队还在自己的网站 (silq.ethz.ch) 上发布了 Silq 项目的更多详细信息。


过去十年以来,量子计算一直备受关注,业界普遍认为这些根据量子力学原理运行的计算机具有巨大的发展空间。如今,大部分研究人员也认为,量子计算机终有一天将在某些特定问题中带来远超传统计算机的处理能力。凭借着纠缠量子态基础之上,各种信息在特定时间点上的重叠情况,量子计算机在某些方面拥有无与伦比的强大算力,足以解决众多在传统计算机上无法在合理时间内解决的问题。


虽然由此衍生出的“量子霸权”理论还没有得到最终证明,但近期取得的一系列重大技术进步无疑让我们充满信心。2019 年夏末,量子计算机已经以远超顶尖经典计算机的速度解决了一个问题(虽然只是非常具体的特定问题)。


在另一方面同,对于某些特定“量子算法(即计算策略)”,其计算速度虽然已经高于经典算法,但却还无法发挥量子计算机的全部潜力。更重要的是,目前的量子计算机的错误率仍然太高,导致我们很难直接在现有量子硬件上运行这些算法。


更好表达程序员的意图


要发挥量子计算的力量,除了配合技术之外,还需要创造一种能够描述量子算法的编程语言。在原则上,算法可以算是解决问题的“秘方”。编程语言负责描述算法,而计算机则在语言代码的指引下完成必要的计算。


如今,量子编程语言已经与特定硬件紧密联系在一起。换句话说,之前的量子编程语言都需要较精确描述底层电路的行为。但对程序员们来说,这些“硬件描述语言”既麻烦又容易出错,因为其中各项编程指令必须非常详细,用以明确描述量子算法实现过程中需要的全部细节。


Martin Vechev 表示,与现有语言相比,Silq 能够更好地发挥量子计算机中的潜力。正因为如此,Vechev 与他的团队才坚定了开发 Silq 语言的决心。



Martin Vechev, 计算机科学教授


Vechev 研究小组中负责开发监督工作的博士生 Benjamin Bichsel 表示,“Silq 是第一种直观量子编程语言,其设计目的不再围绕硬件的结构与功能展开,而更多关注程序员们在解决问题时表达出的意图 — 换言之,他们不需要了解量子计算机的基本架构与每一个实现细节。”


计算机科学家们将这种从特定计算机类型的细节中抽象得出的计算机语言,称为高级编程语言。Silq 可以说是量子计算机领域的第一种高级编程语言。高级语言将更具表现力,能够用更少的代码描述更加复杂的任务与算法。这意味着相关代码将更易于理解,也降低了程序员们的使用门槛。更重要的是,高级语言能够与多种不同计算机架构配合使用。


通过自动计算消除错误


但要论 Silq 给量子编程语言带来的较大创新贡献,还在于它消除了长期困扰量子编程的错误源问题。一切计算机都需要通过多个中间步骤以执行计算任务,而这些步骤的存在总会产生对应的中间结果(或者叫临时值)。


为了释放内存空间,传统计算机会自动删除这些值。对于这种丢弃多余临时值的操作,计算机科学家将其称为“垃圾收集”。


在量子计算机当中,由于量子纠缠态的存在,这种处理操作将更加棘手:此前计算得出的值可能与当前值发生交互,从而干扰正常计算。为此,要想在量子计算机上清除这些临时值,可能还需要一种更高级的所谓“计算撤销(uncomputation)”技术。


Vechev 还指出,“Silq 在量子计算机的编程优化方面带来了一项重大突破;当然,这还只是万里征途的第一步”。


目前,量子计算技术的实际应用当中仍存在着诸多悬而未决的问题,但随着直观编程语言 Silq 的出炉,Vechev 与 Bichsel 希望激励整个行业进一步开发量子编程语言,并推动新型量子算法在理论与应用方面取得新的成果。


Bichsel 总结道,“我们的四人团队历时两年取得了这项突破,其成功源自语言设计、量子物理学以及具体实现等多种不同专业知识的交相融合。如果我们的创新成果能为其他研究团队所认可并带来一点启发,那将是对我们努力的较大肯定。”


云服务器ECS地址:阿里云·云小站

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章