头条
-
惊艳曝光!杨洋、虞书欣荣耀300环球旅拍大片来袭,...
宝子们,想象一下,当你的男神女神与幽默风趣的脱口秀演员出现在同一场发布会上,会出现怎样有趣的画面? 12月2日,荣耀300系列环球旅拍发布会现场,两位炙手可热的明星杨洋、虞书欣,加上幽默风趣的付航,共...
Silq是用于量子计算机的新型高级编程语言
发布时间:2020/06/17 科技 浏览:305
量子计算硬件持续改进,到未来几年我们可能会看到实际的用例,因此我们也注意到专注于如何对这些机器进行最佳编程的研究项目在不断增加,这不足为奇。该领域的最新成果之一是Silq,这是一种来自瑞士ETHZurich的量子计算机的高级编程语言。
此处的重点是“高级编程语言”,因为该语言背后的研究人员指出,现有的面向程序员的量子语言仍然在非常低的抽象级别上工作,这使量子程序员的工作变得比必要的艰苦得多。
ETH计算机科学副教授MartinVechev告诉我:“该项目的历史是我们想解决量子计算中的核心问题。”“例如,如果您想解决量子计算中的核心问题,如果您想分析和推理量子程序,则需要使用一种语言来表达这些问题,并且现有语言。我们研究了量子计算中的各种问题,但一直存在的一个基本问题是,我们研究了程序及其表达方式,您会发现这不是理想的,也不是最佳的。”
因此,团队开始研究人们当前使用的不同语言,包括Microsoft的Q#和IBM的Qiskit等SDK。
Vechev博士说:“最初,我们认为我们不需要创建一种新语言。”学生BenjaminBichsel添加了。“而且我们甚至在一开始都没有考虑过。我们想解决量子计算中更高级的问题。我们认为,好的,让我们快速选择一种语言,然后使用该语言。然后我们意识到,对于我们感兴趣的更高级属性而言,现有语言是完全不够的。”
该团队本周在PLDI2020上发表的关于Silq的论文的其中一位共同作者(其中包括TimonGehr和MaximilianBaader,以及Bichsel和Vechev,是共同作者),甚至表示他不会与任何现有的语言,因为它们对他来说太烦人了。
那么现有语言有什么问题呢?Vechev指出:“开始研究这一问题的一种好方法是,研究量子计算中的一项基本挑战,这是古典语言所没有的,这是无算术的挑战。”实际上,无算是Silq方法的核心,并且是本机内置的。虽然有经典的模拟运算,但不一定是最直观的概念。
“在古典语言中,如果您计算“AORBORC”,则应先计算“AORB”,然后使用它来计算“[此结果]ORC”,而忘了这个临时值您同时已经进行了计算。”Bichsel解释说。“如果以量子方式进行此操作,则会产生意想不到的副作用。[…]最重要的是,在这种情况下,您期望发生的事情不会发生。因此,您必须以某种方式处理此问题。这对于基本上所有现有的量子语言意味着什么,就是您被迫在非常低的抽象水平上工作,在抽象水平上您必须考虑所有临时值。这从根本上阻止了任何高级思考。”
这意味着,即使您想在量子计算机上做相对琐碎的事情(例如加到整数),也必须考虑在过程中创建的所有临时值并显式处理它们。
“对于量子计算,因为您始终必须处理此类垃圾,例如需要丢弃的临时值,所以您始终必须处理此问题。使用这种语言的工作非常烦人。”Bichsel说。当前的量子语言试图解决此问题,但是以相对复杂的方式进行,而Silq可以立即进行安全,自动的计算。
Vechev还补充说,编写低级程序更容易出错,并且更难于理解算法的实际作用。此外,Silq的编译器类型检查器还试图防止程序员犯常见错误。该团队还研究了古典语言的最新发展(例如所有权类型,线性类型系统等),并在量子计算的背景下实现了这些技术-这在Silq中也是第一次。
因此,团队发现其语言所生成的程序比用Q#和Quipper编写的程序要短得多,并且使用的量子原语要少得多,可能就不足为奇了。
目前,Silq仍是一个研究项目,尚未在任何现有的量子硬件平台上运行。相反,研究人员编写了自己的量子仿真器以检验其假设。“在我们的案例中,因为我们是更高层次的,所以我们将编译过程设想为一个两步过程,在此过程中,您首先表达您的高层意图,然后由编译器来决定将在哪种体系结构上运行以及如何针对特定架构进行优化,”Bichsel说。