量子編程(Quantum programming)是匯編指令序列之行程,稱為量子程序,能夠在量子計算機上運行。量子編程語言使用高級結構化的形式以助表達量子演算法的計算。[1]

量子指令集

编辑

量子指令集用於將更高級別的演算法轉換為可以在量子處理器上執行的物理指令。有時這些指令是特定於給定的硬體平台,例如離子阱超導量子位元英语Superconducting quantum computing

cQASM

编辑

cQASM,[2]也稱為通用QASM,是一種與硬體無關的QASM,可保證所有量子編譯以及仿真工具之間的互相操作性。它是由TUDelft的QCA實驗室所引入的。

Quil

编辑

Quil是一種用於量子計算的指令集架構,它首先引入了共享量子/經典的記憶模型。它是由"羅伯特·史密斯"(Robert Smith)、"邁克爾·柯蒂斯"(Michael Curtis),與"威廉·曾"(William Zeng)在"實用量子指令集架構"(A Practical Quantum Instruction Set Architecture)一文中介紹的。[3]許多量子算法(包括量子隱形傳態量子誤差更正英语Quantum error correction、模擬、[4][5]以及優化演算法[6])需要共享記憶架構。

OpenQASM

编辑

OpenQASM[7]是 IBM 引入用於QiskitIBM量子體驗平台英语IBM Quantum Experience的中介表示。

Blackbird

编辑

Blackbird[8][9]哈納杜量子技術公司英语Xanadu Quantum Technologies及史特貝利菲爾德公司(Strawberry Fields)使用的量子指令集與中介所表示的。Blackbird旨在表示可以於光子量子硬體上運行的連續可變英语Continuous-variable quantum information量子程序。

量子编程语言

编辑

量子编程语言主要有两类:命令式量子编程语言和函数式量子编程语言。

命令式编程语言

编辑

命令式语言最著名的代表是 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] 提出。

参見

编辑

註釋

编辑
  1. ^ Jarosław Adam Miszczak. High-level Structures in Quantum Computing. 2012. ISBN 9781608458516. 
  2. ^ 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] (英语). 
  3. ^ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. A Practical Quantum Instruction Set Architecture. 2016. arXiv:1608.03355  [quant-ph]. 
  4. ^ 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. 
  5. ^ 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]. 
  6. ^ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam. A Quantum Approximate Optimization Algorithm. 2014. arXiv:1411.4028  [quant-ph]. 
  7. ^ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04 [2017-07-06], (原始内容存档于2017-04-02) 
  8. ^ Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation. quantum-blackbird.readthedocs.io. [2019-06-24]. (原始内容存档于2022-09-26). 
  9. ^ 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 (英国英语). 
  10. ^ Bernhard Omer. The QCL Programming Language. [2023-12-10]. (原始内容存档于2003-10-08). 
  11. ^ Hynek Mlnařík. LanQ – a quantum imperative programming language. [2023-12-10]. (原始内容存档于2016-05-20). 
  12. ^ 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. 
  13. ^ Peter Selinger, "Towards a quantum programming language"页面存档备份,存于互联网档案馆), Mathematical Structures in Computer Science 14(4):527-586, 2004.
  14. ^ Jonathan Grattage: QML Research页面存档备份,存于互联网档案馆) (website)
  15. ^ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto, QML: A Functional Quantum Programming Language 互联网档案馆存檔,存档日期2006-07-10. (website)
  16. ^ 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页面存档备份,存于互联网档案馆
  17. ^ 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.
  18. ^ Pablo Arrighi, Gilles Dowek, "Linear-algebraic lambda-calculus: higher-order, encodings and confluence"页面存档备份,存于互联网档案馆), 2006

延伸閱讀

编辑

參閱

编辑

外部連結

编辑

📚 Artikel Terkait di Wikipedia

Python

#从下标1的元素剪切直到下标5之前的元素且步长为2 [1, 3] lambda表达式示例: >>> from functools import reduce >>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 15 >>> fac = lambda n: (1 if n<2 else n*fac(n-1))

功能即服務

PaaS, and the Benefits of the Serverless Architecture. InfoQ. 25 June 2016.  Dealing with cold starts in AWS Lambda. [2023-04-12]. (原始内容存档于2023-04-17). 

面向语言的程序设计

tr_id=4 (页面存档备份,存于互联网档案馆) http://oozy.blogspot.com/ (页面存档备份,存于互联网档案馆) http://lambda-the-ultimate.org/node/377 (页面存档备份,存于互联网档案馆) http://www.paulgraham.com/onlisp

SECD抽象机

(succ lambda (n) (add n (quote 1)))) 这个let函数的应用被编译为: (LDC NIL LDF β CONS LDF α AP) 其中的α对应调用表达式(succ (quote 2)),它被编译在一个上下文中,这里succ是唯一的变量,β对应其绑定的值,即lambda表达式(lambda

LISP

Lisp和新近的Clojure。 Lisp最初是為計算機程序創建的實用數學表示法,當時借鑒過阿隆佐·邱奇的lambda表示法。它很快成為人工智能研究中最受歡迎的編程語言。作為早期的高階編程語言之一,Lisp開創了計算機科學領域的許多概念,包括树结构、自動記憶體管

SISAL

院的一群本科生为SISAL语言探究实现了一个细粒度并行后端。 在2018年于SISAL-IS计划中SISAL被现代化为基于缩进的语法、头等函数、lambda、闭包和惰性语义。 James R. McGraw, Stephen K. Skedzielewski, Stephen J. Allan, Dale

圓周率

{\displaystyle f^{n}(x)+\lambda ^{2}f(x)=0} ,此處λ是相關的特徵值。受施图姆-刘维尔理论限制, λ {\displaystyle \lambda } 只能是一些特定的數值。而 λ = π {\displaystyle \lambda =\pi } 即為一個特征值,因為函數

C♯

// 给 lambda 设置 f = [return: Foo] (x) => x; // 给 lambda 返回值设置 f = ([Foo] x) => x; // 给 lambda 参数设置 此前 C# 的 lambda 返回值类型靠推导,C# 10允许在参数列表之前显式指定 lambda 返回值类型: