从这个问题中,我得出了主要的量子计算编程语言是Q#和QISKit。
还有哪些其他编程语言可用于量子计算机编程?选择特定的产品有某些好处吗?
编辑:我正在寻找编程语言,而不是模拟器。模拟器模拟事物。编程语言是一种编写指令的方法(用于实际对象或用于仿真器)。可能只有一种语言可用于多个仿真器,反之亦然。
从这个问题中,我得出了主要的量子计算编程语言是Q#和QISKit。
还有哪些其他编程语言可用于量子计算机编程?选择特定的产品有某些好处吗?
编辑:我正在寻找编程语言,而不是模拟器。模拟器模拟事物。编程语言是一种编写指令的方法(用于实际对象或用于仿真器)。可能只有一种语言可用于多个仿真器,反之亦然。
Answers:
(此答案不是该网页的副本,它是更新的并且带有经过验证的链接。在某些情况下,添加了作者的论文或网站链接。)
OpenQASM -IBM引入的中间表示形式,用于他们的Quantum Experience。
祈使语
QCL-最早实施的量子编程语言之一。
量子伪代码 -[实际上不是一种语言,而是表示量子算法和操作的一种好方法。] EH Knill。“约定量子伪代码”,未发表的,LANL报告LAUR-96-2724(PDF源1,2),在搜索的arXiv的参考Knill的文件所有文件。
Q | SI> - 中文原件,带英文摘要。arXiv的英文版:“ Q | SI>:量子编程环境 ”。
qGCL- “ 量子编程中的交替:从数据叠加到程序叠加 ”。
QMASM-特定于D-Wave系统。QMASM文档。在LANL上撰写 Scott Pakin的 edif2qmasm和QMASM网页。
功能语言
QFC和QPL - 作者的网站。
QML-主站点:http : //sneezy.cs.nott.ac.uk/QML/(一个月后没有响应),sneezy.cs.nott.ac.uk的Archive.Org副本,作者的博士学位论文:“ 功能量子编程语言 ”(PDF)。
LIQUi |> -扩展到F#(F夏普)。
量子λ计算 -维基百科列出了一些版本。
Quipper-一种基于Haskell的可扩展功能编程语言,用于量子计算。另请参见 Proto-Quipper。彼得·塞林格(Peter Selinger)的演讲(FSCD 2018)题为“量子编程语言的挑战 ”( .PDF),讨论了这些语言。
多天堂语言
Q#(Q Sharp) -一种用于表示量子算法的领域特定的编程语言。它最初是由Microsoft作为Quantum Development Kit的一部分向公众发布的。还可以提供Microsoft Quantum Katas,这是一系列自定进度的教程,旨在同时教授量子计算和Q#编程的元素。
Strawberry Fields(来自XanduAI)是一个全栈Python库,用于设计,模拟和优化连续可变量子光学电路。
网站Quantum Computing Report的工具网页上列出了十二个链接,其中一些是新的,有些是重复上述列表的。
另请参见QuanTiki的网页:“ QC模拟器列表 ”,其中包含基于C / C ++,CaML,OCaml,F#以及基于GUI,Java,JavaScript,Julia,Maple,Mathematica,Maxima的大量模拟器和编程语言。 ,Matlab / Octave,.NET,Perl / PHP,Python,Scheme / Haskell / LISP / ML和其他在线服务,它们提供计算器,编译器,模拟器和工具包等。
选择特定的产品有某些好处吗?
如果您打算使用一台特定的量子计算机,那么人们希望制造商开发的编程语言既最适合该特定机器,又得到了良好的支持。
选择一种具有较大关注度的语言意味着有更多可用的论坛,并希望有更多的错误修复和支持。
不幸的是,这使得一些出色的利基产品难以获得用户基础。试图找到一种在各种平台上都具有强大/表现力并受支持的语言是诀窍,答案是一种意见ATM。
Ryan LaRose在“ 门级量子软件平台概述和比较 ”(2018年7月6日)中提供了对四个软件平台(Forest(pyQuil),QISKit,ProjectQ和Quantum Developer Kit)的评估。
更新:
Google的Cirq和OpenFermion-Cirq:“ Google的AI博客-宣布Cirq:NISQ算法的开源框架 ”。
D-Wave的Leap and Ocean SDK允许在云环境中访问D-Wave 2000Q™系统,并且可以使用2000+量子位量子退火机免费测试和运行工作负载,前提是所使用的核心算法已进入开源池。申请登录D-Wave的Leap In网页。
Rigetti Computing的Quantum Cloud Service(QCS)提供了Quantum机器映像,虚拟化的编程和执行环境,该环境预先配置了Forest 2.0,可访问128量子位计算机的多达16量子位。
请继续关注有关富士通的Digital Annealer的信息,该架构能够执行比常规计算机快约10,000倍的计算。如果它们最终提供了与真正的量子计算机交叉兼容的开发环境,那么这两段将保留在该答案中,否则我将删除它们。
尽管富士通的硅芯片本质上不是量子芯片,但富士通已与1Qbit合作开发所谓的“ 量子启发式AI云服务 ”,无论其数字退火炉是否像鸭子一样qua(像D-Wave一样退火,并使用兼容的代码)有待观察。访问此处以访问Fujitsu Digital Annealer技术服务。
宾夕法尼亚大学的QWIRE(合唱团)是一种量子电路语言和形式验证工具,它具有GitHub网页。
评论如下:Cirq,Cliffords.jl,dimod,dwave系统,FermiLib,Forest(pyQuil和Grove),OpenFermion,ProjectQ,PyZX,QGL.jl,Qbsolv,Qiskit Terra和Aqua,Qiskit教程和Qiskit.js,论文提供了Qrack,Quantum Fog,Quantum ++,Qubiter,Quirk,reference-qvm,ScaffCC,Strawberry Fields,XACC,最后是XACC VQE,该文章由Mark Fingerhuth提供,“ 量子计算中的开源软件 ”(2018年12月21日), TomášBabej和Peter Wittek。
我将不时返回此答案进行更新,而不会引起过多的麻烦。
门模型硬件供应商已经建立了自己的底层语言:
这些具有更高级别的python sdk可用:
Rigetti还将其语言包装在一个更高级别的库中,以调用名为Grove的预构建应用程序。
微软已经开发了Q#来与他们现有的模拟器以及最终的物理硬件一起运行。
由于上述语言是特定于供应商的语言,所以主要的好处是您可以在他们的计算机上运行量子程序。
在供应商之外,特定语言是Scaffold,由普林斯顿研究人员开发。这种语言很有趣,因为它包括一个用于分析程序以确定成本,性能潜力和可扩展性的工具链。
编辑:Project Q是另一个框架,可让您使用可以在附带的模拟器上运行的Python开发程序。
橡树岭国家实验室(Oak Ridge National Labs)已开始进行名为XACC的项目,该项目旨在提取特定于供应商的代码,以使用户能够访问各种硬件平台,而不必以每种特定于供应商的语言来复制代码。
甚至看看Quipper,一种功能性的Quantum编程语言。具有单子语义,内置功能可逆量子计算,分层电路支持等等!也用于实际操作中–用于LaFlamme 计算Dirac方程解的算法。
我将包括IBM的Composer。感觉不像是编程,因为您没有得到所有的错误,错误和功能,但是它显然会将您在闸门上的指令转换为QASM并在真实的IBM模拟器或真实的IBM量子计算机上运行(选择用户的)。
不幸的是,Quantiki上的列表很老,而且没有得到很好的维护。由于量子态势在不断发展,即使仅将所有量子编程语言都列为一个问题的答案也是不可持续的。例如,谷歌刚刚发布了Cirq,这是一种用于嘈杂中级量子(NISQ)计算机的新量子编程框架,由于几天前才宣布,因此上述任何答复均未提及。
为了解决这个问题,并作为对QC StackExchange上另一个问题的回应,我在GitHub上列出了一系列开源软件项目,其中还包括对积极开发的量子编程语言和框架的全面概述。该列表由社区积极维护,我们不断添加新项目。