量子编程
量子编程(Quantum programming)是汇编指令序列之行程,称为量子程序,能够在量子计算机上运行。量子编程语言使用高级结构化的形式以助表达量子演算法的计算。[1]
量子指令集
[编辑]量子指令集用于将更高级别的演算法转换为可以在量子处理器上执行的物理指令。有时这些指令是特定于给定的硬体平台,例如离子阱或超导量子位元。
cQASM
[编辑]cQASM,[2]也称为通用QASM,是一种与硬体无关的QASM,可保证所有量子编译以及仿真工具之间的互相操作性。它是由TUDelft的QCA实验室所引入的。
Quil
[编辑]Quil是一种用于量子计算的指令集架构,它首先引入了共享量子/经典的记忆模型。它是由"罗伯特·史密斯"(Robert Smith)、"迈克尔·柯蒂斯"(Michael Curtis),与"威廉·曾"(William Zeng)在"实用量子指令集架构"(A Practical Quantum Instruction Set Architecture)一文中介绍的。[3]许多量子算法(包括量子隐形传态、量子误差更正、模拟、[4][5]以及优化演算法[6])需要共享记忆架构。
OpenQASM
[编辑]OpenQASM[7]是 IBM 引入用于Qiskit及IBM量子体验平台的中介表示。
Blackbird
[编辑]Blackbird[8][9]是哈纳杜量子技术公司及史特贝利菲尔德公司(Strawberry Fields)使用的量子指令集与中介所表示的。Blackbird旨在表示可以于光子量子硬体上运行的连续可变量子程序。
量子编程语言
[编辑]量子编程语言主要有两类:命令式量子编程语言和函数式量子编程语言。
命令式编程语言
[编辑]命令式语言最著名的代表是 QCL、[10] LanQ[11] 和 Q|SI>。[12]
函数式语言
[编辑]正在致力于开发用于量子计算的函数式编程语言。函数式编程语言非常适合进行程序推理。一些示例包括 Selinger 的 QPL[13]、Haskell 类 Altenkirch 和 Graattage 的 QML 语言[14][15]。高阶量子编程语言,基于lambda演算,由 van Tonder[16]、Selinger 和 Valiron[17] 以及 Arrighi 和 Dowek[18] 提出。
参见
[编辑]注释
[编辑]- ^ Jarosław Adam Miszczak. High-level Structures in Quantum Computing. 2012. ISBN 9781608458516.
- ^ Bertels, K.; Almudever, C. G.; Hogaboam, J. W.; Ashraf, I.; Guerreschi, G. G.; Khammassi, N. cQASM v1.0: Towards a Common Quantum Assembly Language. 2018-05-24. arXiv:1805.09607v1 [quant-ph] (英语).
- ^ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. A Practical Quantum Instruction Set Architecture. 2016. arXiv:1608.03355 [quant-ph].
- ^ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán. The theory of variational hybrid quantum-classical algorithms. New Journal of Physics. 2016-02-04, 18 (2): 023023. Bibcode:2016NJPh...18b3023M. ISSN 1367-2630. S2CID 92988541. arXiv:1509.04279 . doi:10.1088/1367-2630/18/2/023023.
- ^ Rubin, Nicholas C.; Curtis, Michael J.; Zeng, William J. A Hybrid Classical/Quantum Approach for Large-Scale Studies of Quantum Systems with Density Matrix Embedding Theory. 2016. arXiv:1610.06910 [quant-ph].
- ^ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam. A Quantum Approximate Optimization Algorithm. 2014. arXiv:1411.4028 [quant-ph].
- ^ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04 [2017-07-06], (原始内容存档于2017-04-02)
- ^ Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation. quantum-blackbird.readthedocs.io. [2019-06-24]. (原始内容存档于2022-09-26).
- ^ Weedbrook, Christian; Amy, Matthew; Bergholm, Ville; Quesada, Nicolás; Izaac, Josh; Killoran, Nathan. Strawberry Fields: A Software Platform for Photonic Quantum Computing. Quantum. 2019-03-11, 3: 129. S2CID 54763305. arXiv:1804.03159 . doi:10.22331/q-2019-03-11-129 (英国英语).
- ^ Bernhard Omer. The QCL Programming Language. [2023-12-10]. (原始内容存档于2003-10-08).
- ^ Hynek Mlnařík. LanQ – a quantum imperative programming language. [2023-12-10]. (原始内容存档于2016-05-20).
- ^ Liu, Shusen; Zhou, li; Guan, Ji; He, Yang; Duan, Runyao; Ying, Mingsheng. Q|SI>: A Quantum Programming Language. Scientia Sinica Informationis. 2017-05-09, 47 (10): 1300. S2CID 9163705. arXiv:1710.09500 . doi:10.1360/N112017-00095.
- ^ Peter Selinger, "Towards a quantum programming language" (页面存档备份,存于互联网档案馆), Mathematical Structures in Computer Science 14(4):527-586, 2004.
- ^ Jonathan Grattage: QML Research (页面存档备份,存于互联网档案馆) (website)
- ^ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto, QML: A Functional Quantum Programming Language 互联网档案馆的存档,存档日期2006-07-10. (website)
- ^ Andre van Tonder, "A Lambda Calculus for Quantum Computation", SIAM J. Comput., 33(5), 1109–1135. (27 pages), 2004. Also available from arXiv:quant-ph/0307150 (页面存档备份,存于互联网档案馆)
- ^ Peter Selinger and Benoît Valiron, "A lambda calculus for quantum computation with classical control" (页面存档备份,存于互联网档案馆), Mathematical Structures in Computer Science 16(3):527-552, 2006.
- ^ Pablo Arrighi, Gilles Dowek, "Linear-algebraic lambda-calculus: higher-order, encodings and confluence" (页面存档备份,存于互联网档案馆), 2006
延伸阅读
[编辑]- Mingsheng, Ying. Foundations of quantum programming. Cambridge, MA. 2016. ISBN 978-0128025468. OCLC 945735387.
参阅
[编辑]外部链接
[编辑]- Bibliography on Quantum Programming Languages (页面存档备份,存于互联网档案馆) (updated in May 2007)
- 5th International Workshop on Quantum Physics and Logic (页面存档备份,存于互联网档案馆)
- 4th International Workshop on Quantum Programming Languages (页面存档备份,存于互联网档案馆)
- 3rd International Workshop on Quantum Programming Languages (页面存档备份,存于互联网档案馆)
- 2nd International Workshop on Quantum Programming Languages (页面存档备份,存于互联网档案馆)
- Quantum programming language (页面存档备份,存于互联网档案馆) in Quantiki (页面存档备份,存于互联网档案馆)
- QMASM documentation (页面存档备份,存于互联网档案馆)
- pyQuil documentation (页面存档备份,存于互联网档案馆) including Introduction to Quantum Computing (页面存档备份,存于互联网档案馆)
- Scaffold Source (页面存档备份,存于互联网档案馆)
- Curated list (页面存档备份,存于互联网档案馆) of all open-source quantum software projects