양자 프로그래밍
Quantum programming프로그래밍 패러다임 |
---|
양자 프로그래밍은 양자 컴퓨터에서 실행할 수 있는 양자 프로그램이라고 불리는 일련의 명령들을 조립하는 과정입니다.양자 프로그래밍 언어는 높은 수준의 [1]구조를 사용하여 양자 알고리즘을 표현하는 데 도움이 됩니다.이 분야는 오픈 소스 철학에 깊이 뿌리를 두고 있으며, 그 결과 이 기사에서 논의된 양자 소프트웨어의 대부분은 오픈 소스 [2]소프트웨어로 자유롭게 이용할 수 있습니다.
양자 명령 집합
양자 명령 세트는 상위 수준의 알고리즘을 양자 프로세서에서 실행할 수 있는 물리적 명령으로 변환하는 데 사용됩니다.이러한 명령은 이온 트랩이나 초전도 큐비트 등 특정 하드웨어 플랫폼에 고유할 수 있습니다.
cQASM
cQASM([3]일반 QASM이라고도 함)은 하드웨어에 의존하지 않는 QASM으로 모든 양자 컴파일 및 시뮬레이션 도구 간의 상호 운용성을 보장합니다.이것은 TUDelft의 QCA Lab에 의해 도입되었습니다.
퀼
Quil은 공유 양자/클래식 메모리 모델을 최초로 도입한 양자 컴퓨팅용 명령 집합 아키텍처입니다.Robert Smith, Michael Curtis 및 William Zeng에 의해 A Practical Quantum Instruction Set [4]Architecture에서 소개되었습니다.많은 양자 알고리즘(양자 순간이동, 양자 오류 보정, 시뮬레이션 [5][6]및 최적화 알고리즘[7] 포함)에는 공유 메모리 아키텍처가 필요합니다.
오픈QASM
OpenQASM은[8] IBM이 Qiskit 및 IBM Q Experience와 함께 사용하기 위해 도입한 중간 표현입니다.
블랙버드
Blackbird는[9][10] Xanadu Quantum Technologies와 Strawberry Fields에서 사용되는 양자 명령 집합 및 중간 표현입니다.이것은 광전자 양자 하드웨어에서 실행할 수 있는 연속 가변 양자 프로그램을 나타내도록 설계되었습니다.
Quantum 소프트웨어 개발 키트
양자 소프트웨어 개발 키트는 양자 [11]프로그램을 만들고 조작하기 위한 도구 모음을 제공합니다.또한 양자 프로그램을 시뮬레이션하거나 클라우드 기반 양자 장치를 사용하여 실행할 수 있도록 준비하는 수단을 제공합니다.
퀀텀 프로세서에 액세스할 수 있는 SDK
다음과 같은 소프트웨어 개발 키트를 사용하여 양자 회로를 시뮬레이터뿐만 아니라 프로토타입 양자 소자에서도 실행할 수 있습니다.
바다
D-Wave에서 개발한 오픈 소스 도구 모음입니다.주로 Python 프로그래밍 언어로 작성되며, 사용자는 Ising Model 및 Quba Unstrained Binary Optimization(QUBO) 형식의 문제를 공식화할 수 있습니다.결과는 Leap, D-Wave의 실시간 Quantum Application Environment, 고객 소유의 머신 또는 클래식 샘플러의 [citation needed]온라인 양자 컴퓨터에 제출하여 얻을 수 있습니다.
프로젝트Q
ETH 이론 물리학 연구소에서 개발한 오픈 소스 프로젝트로, Python 프로그래밍 언어를 사용하여 양자 [12]회로를 만들고 조작합니다.결과는 시뮬레이터를 사용하거나 IBM 양자 장치에 작업을 전송하여 얻을 수 있습니다.
큐스키트
IBM이 [13]개발한 오픈 소스 프로젝트입니다.양자회로는 Python을 사용하여 생성 및 조작됩니다.결과는 사용자 자신의 장치에서 실행되는 시뮬레이터, IBM에서 제공하는 시뮬레이터 또는 IBM에서 제공하는 시제품 양자 장치를 사용하여 얻을 수 있습니다.기본 양자 연산을 사용하여 프로그램을 만드는 기능뿐만 아니라 알고리즘 및 벤치마킹에 대한 고급 도구를 특수 [14]패키지로 사용할 수 있습니다.Qiskit은 OpenQ를 기반으로 합니다.양자회로를 나타내기 위한 ASM 규격.또한 QiskitPulse [15]표준을 통해 양자 시스템의 펄스 레벨 제어를 지원합니다.
숲
Python 프로그래밍 언어를 사용하여 양자 회로를 만들고 조작하는 Rigetti가 개발한 오픈 소스 프로젝트입니다.결과는 시뮬레이터 또는 Rigetti가 제공한 시제품 양자 장치를 사용하여 얻을 수 있습니다.기본 양자 연산을 사용하여 프로그램을 만들 수 있을 뿐만 아니라 Grove [16]패키지 내에서 보다 높은 수준의 알고리즘을 사용할 수 있습니다.포레스트는 퀼 명령 집합을 기반으로 합니다.
ket >
Cambridge Quantum Computing이 개발한 양자 프로그래밍 환경 및 최적화 컴파일러로, 시뮬레이터와 여러 양자 하드웨어 백엔드를 대상으로 하며,[17] 2018년 12월에 출시되었습니다.
딸기밭
Xanadu Quantum Technologies가 개발한 오픈 소스 Python 라이브러리. 연속 변수(CV) 양자 [18][19]광회로를 설계, 시뮬레이션 및 최적화하기 위한 것입니다.세 가지 시뮬레이터가 제공되는데, 하나는 Fock 기반, 하나는 양자 광학 [20]가우스 공식을 사용하고 다른 하나는 TensorFlow 기계 학습 라이브러리를 사용한다.Strawberry Fields는 Xanadu의 양자 포토닉 [21][22]하드웨어에서 프로그램을 실행하기 위한 라이브러리이기도 합니다.
페니레인
Xanadu Quantum Technologies가 개발한 오픈 소스 Python 라이브러리. 양자 [23][24][25][26]컴퓨터의 차별화된 프로그래밍을 위해 개발되었습니다.PennyLane은 TensorFlow, NumPy 또는 PyTorch를 사용하여 모델을 만들고 IBMQ, Google Quantum, Rigetti, Quantinum[27] 및 Alpine Quantum[28] Technologies에서 [29]제공하는 양자 컴퓨터 백엔드에 연결할 수 있는 기능을 제공합니다.
양자 개발 키트
의 일부로 Microsoft에 의해[30] 개발된 프로젝트.NET 프레임워크양자 프로그래밍 언어 Q#을 사용하여 Visual Studio 및 VSCode 내에서 양자 프로그램을 작성하고 실행할 수 있습니다.QDK로 개발된 프로그램은 Microsoft의 Azure [31]Quantum에서 실행할 수 있으며 Quantinum,[32] IonQ 및 Pasqal의 [33]양자 컴퓨터에서 실행할 수 있습니다.
서크
Python 프로그래밍 언어를 사용하여 양자 회로를 만들고 조작하는 Google에 의해 개발된 오픈 소스 프로젝트입니다.Cirq로 작성된 프로그램은 IonQ, Pasqal,[34] Rigetti, Alpine Quantum [35]Technologies에서 실행할 수 있습니다.
양자 프로그래밍 언어
양자 프로그래밍 언어에는 명령형 양자 프로그래밍 언어와 기능형 양자 프로그래밍 언어의 두 가지 주요 그룹이 있습니다.
명령어
명령어의 대표주자는 QCL,[36] LanQ[37] 및 QSI [38]>입니다.
QCL
QCL(Quantum Computation Language)은 최초로 구현된 양자 프로그래밍 [39]언어 중 하나입니다.QCL의 가장 중요한 기능은 사용자 정의 연산자 및 함수 지원입니다.이 구문은 C 프로그래밍 언어의 구문과 유사하며 고전적인 데이터 유형은 C의 원시 데이터 유형과 유사합니다.클래식 코드와 양자 코드를 같은 프로그램으로 조합할 수 있다.
양자 의사 코드
E. Knill에 의해 제안된 양자 유사 코드는 양자 알고리즘의 기술을 위한 최초의 공식화된 언어이다.그것은 도입되었고, 게다가 QRAM(Quantum Random Access Machine)이라 불리는 양자 기계 모델과 밀접하게 연결되었다.
질문#
Quantum Development [40]Kit에서 사용하기 위해 Microsoft가 개발한 언어입니다.
Q SI >
Q SI >는 에 내장된 플랫폼입니다.while-language의 양자 확장에서 양자 프로그래밍을 지원하는 넷 언어.[38][41]이 플랫폼은 양자 while-language[42] 컴파일러와 양자 계산 시뮬레이션, 양자 회로 최적화, 양자 [43]프로그램 종료 분석 및 양자 [44][45]프로그램 검증을 위한 도구 체인을 포함합니다.
Q언어
Q 언어는 두 번째로 구현된 필수 양자 프로그래밍 [46]언어입니다.Q 언어는 C++ 프로그래밍 언어의 확장으로 구현되었습니다.기본 클래스 Qop에서 파생된 QHadamard, QFourier, QNot 및 QSwap과 같은 기본 양자 연산을 위한 클래스를 제공합니다.새로운 연산자는 C++ 클래스 메커니즘을 사용하여 정의할 수 있습니다.
양자 메모리는 클래스 Qreg로 표시됩니다.
큐레그 x1; // 초기값이 0인 1비트 양자 레지스터 큐레그 x2(2,0); // 초기값이 0인 2비트 양자 레지스터
계산 프로세스는 제공된 시뮬레이터를 사용하여 실행됩니다.소음 환경은 시뮬레이터의 매개변수를 사용하여 시뮬레이션할 수 있습니다.
qGCL
Quantum Guarded Command Language(qGCL)는 P. Zuliani에 의해 박사 논문에서 정의되었습니다.이 명령어는 Edsger Dijkstra가 만든 가드 명령어를 기반으로 합니다.
양자 프로그램 사양의 언어라고 할 수 있습니다.
QMASM
Quantum Macro Assembler(QMASM)는 D-Wave와 [47]같은 양자 어닐러에 고유한 하위 언어입니다.
비계
Scale은 QASM과 OpenQ로 컴파일되는 C와 같은 언어입니다.ASM. LLVM 컴파일러 인프라스트럭처 위에 구축되어 지정된 명령 [48][49]세트를 생성하기 전에 비계 코드로 최적화를 수행합니다.
실크
Silq는 ETH [50][51]Zürich에서 개발된 강력한 정적 유형 시스템을 갖춘 양자 컴퓨팅용 고급 프로그래밍 언어입니다.
기능 언어
양자 컴퓨팅을 위한 기능적 프로그래밍 언어를 개발하기 위한 노력이 진행 중입니다.기능적 프로그래밍 언어는 프로그램에 대한 추론에 적합합니다.예를 들어 Selinger의 QPL,[52] Altenkirch와 Grattage의 [53][54]Haskell과 같은 언어 QML 등이 있습니다.람다 미적분에 기초한 고차 양자 프로그래밍 언어는 반 톤더,[55] 셀링거, 발리론에[56] 의해 그리고 아리기와 다우크에 [57]의해 제안되었다.
QFC 및 QPL
QFC와 QPL은 Peter Selinger에 의해 정의된 밀접하게 관련된 양자 프로그래밍 언어입니다.QFC는 흐름도 구문을 사용하고 QPL은 텍스트 구문을 사용합니다.이러한 언어는 고전적인 제어 흐름을 가지고 있지만 양자 또는 고전적인 데이터로 작동할 수 있습니다.Selinger는 상위 연산자의 범주에서 이러한 언어에 대한 지시적 의미론을 제공합니다.
품질
QML은 Altenkirch와 Grattage의 [58][53]Haskell과 같은 양자 프로그래밍 언어입니다.Selinger의 QPL과 달리, 이 언어는 원시적인 연산으로 양자 정보를 폐기하는 것이 아니라 복제를 취한다.이 문맥에서의 중복은 )를에 매핑하는 조작으로 이해되며 복제의 불가능한 조작과 혼동해서는 안 됩니다.저자들은 이것이 고전 언어에서의 공유와 비슷하다고 주장합니다.QML은 또한 고전 제어 연산자와 양자 제어 연산자를 모두 도입하지만, 대부분의 다른 언어는 고전 제어에 의존합니다.
QML에 대한 동작 시멘틱스는 양자회로의 관점에서 주어지는 반면, 표현 시멘틱스는 슈퍼 오퍼레이터의 관점에서 제시되며, 이들은 동의하는 것으로 나타난다.운용적 의미론과 지시적 의미론은 모두 해스켈에서 (고전적으로) 구현되었다.[59]
액정 >
LIKi > (액체로 발음)는 F# 프로그래밍 [60]언어의 양자 시뮬레이션 확장입니다.현재 Microsoft Research의 StationQ 노력의 일환으로 Quantum Architectures and Computation Group(QuArC)[61]에 의해 개발되고 있습니다.LIKi >는 물리 양자컴퓨터를 사용할 [62]수 있게 되기 전에 이론가가 양자 알고리즘 설계를 실험할 수 있도록 하는 것을 목표로 하고 있습니다.
여기에는 프로그래밍 언어, 최적화 및 스케줄링 알고리즘 및 양자 시뮬레이터가 포함됩니다.LIKi > 를 사용하면, 상위 레벨의 프로그램 형식으로 기술된 양자 알고리즘을, 양자 [63]디바이스의 하위 레벨의 기계 명령으로 변환할 수 있습니다.
양자 람다 계산
양자 람다 계산은 1930년대에 알론조 처치와 스티븐 콜 클린이 도입한 고전 람다 미적분의 연장선이다.양자 람다 계산의 목적은 양자 프로그래밍 언어를 고차 함수 이론으로 확장하는 것입니다.
1996년 [64]필립 메이민에 의해 양자 람다 미적분을 정의하려는 첫 시도가 있었다.그의 람다크 미적분은 어떤 양자 계산도 표현할 수 있을 만큼 강력하다.그러나 이 언어는 NP-완전 문제를 효율적으로 해결할 수 있으므로 표준 양자 계산 모델(예: 양자 튜링 기계 또는 양자 회로 모델)보다 엄격히 강한 것으로 보입니다.따라서, Maymin의 람다크 미적분은 아마도 물리적[citation needed] 장치에서는 구현될 수 없을 것이다.
2003년, 앙드레 반 톤더는 양자 프로그램의 정확성을 증명하는 데 적합한 람다 미적분의 확장을 정의했다.그는 또한 Scheme 프로그래밍 [65]언어로 구현을 제공했습니다.
2004년 Selinger와 Valiron은 선형 [66]논리에 기초한 유형 체계로 양자 계산을 위한 강력한 유형의 람다 미적분을 정의했다.
키퍼
퀴퍼는 [67][68]2013년에 출판되었다.Haskell을 호스트 [69]언어로 사용하여 임베디드 언어로 구현됩니다.이러한 이유로 Quipper로 작성된 양자 프로그램은 제공된 라이브러리를 사용하여 Haskell로 작성됩니다.예를 들어, 다음 코드는 중첩 준비를 구현합니다.
수입품 키퍼 스팟 :: 불 -> 순환 큐비트 스팟 b = 하다 q <-> 초기화 b r <-> 하드마드 q 돌아가다 r
기능
Chalmers University of Technology의 학부생 그룹은 2021년에 기능적인 양자 프로그래밍 언어를 개발했습니다.Selinger와 [70][71]Valiron의 양자형 람다 미적분에서 영감을 받았습니다.기본 양자 시뮬레이터는 동일한 이름의 Haskell 라이브러리의 일부입니다.다음 코드는 funQ에 중첩을 구현합니다.
스팟 : !(조금 -o QBit) 스팟 b = H (신규 b)
Haskell 라이브러리의 동일한 예는 다음과 같습니다.
수입품 펑큐 스팟 :: 조금 -> 품질관리 QBit 스팟 b = 하드마드 =< 신규 b
레퍼런스
- ^ Jarosław Adam Miszczak (2012). High-level Structures in Quantum Computing. ISBN 9781608458516.
- ^ "Comprehensive list of quantum open-source projects". Github. Retrieved 2022-01-27.
- ^ Bertels, K.; Almudever, C. G.; Hogaboam, J. W.; Ashraf, I.; Guerreschi, G. G.; Khammassi, N. (2018-05-24). "cQASM v1.0: Towards a Common Quantum Assembly Language". arXiv:1805.09607v1 [quant-ph].
- ^ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "A Practical Quantum Instruction Set Architecture". arXiv:1608.03355 [quant-ph].
- ^ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán (2016-02-04). "The theory of variational hybrid quantum-classical algorithms". New Journal of Physics. 18 (2): 023023. arXiv:1509.04279. Bibcode:2016NJPh...18b3023M. doi:10.1088/1367-2630/18/2/023023. ISSN 1367-2630. S2CID 92988541.
- ^ Rubin, Nicholas C.; Curtis, Michael J.; Zeng, William J. (2016). "A Hybrid Classical/Quantum Approach for Large-Scale Studies of Quantum Systems with Density Matrix Embedding Theory". arXiv:1610.06910 [quant-ph].
- ^ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). "A Quantum Approximate Optimization Algorithm". arXiv:1411.4028 [quant-ph].
- ^ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04, retrieved 2017-07-06
- ^ "Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation". quantum-blackbird.readthedocs.io. Retrieved 2019-06-24.
- ^ Weedbrook, Christian; Amy, Matthew; Bergholm, Ville; Quesada, Nicolás; Izaac, Josh; Killoran, Nathan (2019-03-11). "Strawberry Fields: A Software Platform for Photonic Quantum Computing". Quantum. 3: 129. arXiv:1804.03159. doi:10.22331/q-2019-03-11-129. S2CID 54763305.
- ^ Häner, Thomas; Steiger, Damian S.; Svore, Krysta; Troyer, Matthias (2018). "A software methodology for compiling quantum programs". Quantum Science and Technology. 3 (2): 020501. arXiv:1604.01401. Bibcode:2018QS&T....3b0501H. doi:10.1088/2058-9565/aaa5cc. ISSN 2058-9565. S2CID 1922315.
- ^ "ProjectQ homepage".
- ^ "Qiskit homepage".
- ^ "Qiskit Overview". Retrieved 2021-02-10.
- ^ McKay, David C.; Alexander, Thomas; Bello, Luciano; Biercuk, Michael J.; Bishop, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gomez, Juan; Hush, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nation, Paul; Paulovicks, Brent; Winston, Erick; Wood, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). "Qiskit Backend Specifications for OpenQASM and OpenPulse Experiments". arXiv:1809.03452 [quant-ph].
- ^ "Grove documentation".
- ^ "pytket". GitHub. 22 January 2022.
- ^ "Strawberry Fields — Strawberry Fields 0.8.0 documentation". strawberryfields.readthedocs.io. Retrieved 2018-09-25.
- ^ Killoran, Nathan; Izaac, Josh; Quesada, Nicolás; Bergholm, Ville; Amy, Matthew; Weedbrook, Christian (2019). "Strawberry Fields: A Software Platform for Photonic Quantum Computing". Quantum. 3: 129. arXiv:1804.03159. doi:10.22331/q-2019-03-11-129. S2CID 54763305.
- ^ Weedbrook, Christian; Pirandola, Stefano; García-Patrón, Raúl; Cerf, Nicolas J.; Ralph, Timothy C.; Shapiro, Jeffrey H.; Lloyd, Seth (2012-05-01). "Gaussian quantum information". Reviews of Modern Physics. 84 (2): 621–669. arXiv:1110.3234. Bibcode:2012RvMP...84..621W. doi:10.1103/RevModPhys.84.621. S2CID 119250535.
- ^ "Hardware — Strawberry Fields". strawberryfields.ai. Retrieved 2021-03-26.
- ^ "In the Race to Hundreds of Qubits, Photons May Have "Quantum Advantage"". IEEE Spectrum: Technology, Engineering, and Science News. 5 March 2021. Retrieved 2021-03-26.
{{cite web}}
: CS1 maint :url-status (링크) - ^ "PennyLane Documentation — PennyLane 0.14.1 documentation". pennylane.readthedocs.io. Retrieved 2021-03-26.
- ^ "AWS joins PennyLane, an open-source framework that melds machine learning with quantum computing". SiliconANGLE. 2021-02-17. Retrieved 2021-03-26.
- ^ "SD Times Open-Source Project of the Week: PennyLane". SD Times. 2021-02-26. Retrieved 2021-03-26.
- ^ Salamone, Salvatore (2020-12-13). "Real-time Analytics News Roundup for Week Ending December 12". RTInsights. Retrieved 2021-03-26.
- ^ "Quantinuum".
- ^ "AQT".
- ^ "Plugins and ecosystem — PennyLane". pennylane.ai. Retrieved 2021-03-26.
- ^ "QDK documentation".
- ^ "Azure Quantum".
- ^ "Quantinuum".
- ^ "Pasqal".
- ^ "Pasqal".
- ^ "AQT".
- ^ Bernhard Omer. "The QCL Programming Language".
- ^ Hynek Mlnařík. "LanQ – a quantum imperative programming language".
- ^ a b Liu, Shusen; Zhou, li; Guan, Ji; He, Yang; Duan, Runyao; Ying, Mingsheng (2017-05-09). "Q SI>: A Quantum Programming Language". Scientia Sinica Informationis. 47 (10): 1300. arXiv:1710.09500. doi:10.1360/N112017-00095. S2CID 9163705.
- ^ "QCL - A Programming Language for Quantum Computers". tuwien.ac.at. Retrieved 2017-07-20.
- ^ "Q# Documentation".
- ^ Ying, Mingsheng (January 2012). "Floyd–hoare Logic for Quantum Programs". ACM Trans. Program. Lang. Syst. 33 (6): 19:1–19:49. doi:10.1145/2049706.2049708. ISSN 0164-0925. S2CID 416960.
- ^ Ying, Mingsheng; Feng, Yuan (2010). "A Flowchart Language for Quantum Programming". IEEE Transactions on Software Engineering. 37 (4): 466–485. doi:10.1109/TSE.2010.94. ISSN 0098-5589. S2CID 5879273.
- ^ Ying, Mingsheng; Yu, Nengkun; Feng, Yuan; Duan, Runyao (2013). "Verification of quantum programs". Science of Computer Programming. 78 (9): 1679–1700. arXiv:1106.4063. doi:10.1016/j.scico.2013.03.016. S2CID 18913620.
- ^ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017). Invariants of Quantum Programs: Characterisations and Generation. Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages. POPL 2017. Vol. 52. New York, NY, USA: ACM. pp. 818–832. doi:10.1145/3093333.3009840. hdl:10453/127333. ISBN 9781450346603.
- ^ Liu, Tao; Li, Yangjia; Wang, Shuling; Ying, Mingsheng; Zhan, Naijun (2016). "A Theorem Prover for Quantum Hoare Logic and its Applications". arXiv:1601.03835 [cs.LO].
- ^ "Software for the Q language". 2001-11-23. Archived from the original on 2009-06-20. Retrieved 2017-07-20.
- ^ Scott Pakin, "A Quantum Macro Assembler", 2016년 제20회 IEEE 하이 퍼포먼스 익스트림 컴퓨팅 컨퍼런스 진행
- ^ Javadi-Abhari, Ali. "Scaffold: Quantum Programming Language". Princeton University-Department of Computer Science. Princeton University. Retrieved 22 September 2020.
- ^ Litteken, Andrew (28 May 2020). "An updated LLVM-based quantum research compiler with further OpenQASM support". Quantum Science and Technology. 5 (3): 034013. Bibcode:2020QS&T....5c4013L. doi:10.1088/2058-9565/ab8c2c. OSTI 1803951. S2CID 219101628. Retrieved 22 September 2020.
- ^ "What is Silq?". silq.ethz.ch. Retrieved 2020-06-21.
- ^ Bichsel, Benjamin; Baader, Maximilian; Gehr, Timon; Vechev, Martin (2020-06-11). "Silq: a high-level quantum language with safe uncomputation and intuitive semantics". Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. London UK: ACM: 286–300. doi:10.1145/3385412.3386007. ISBN 978-1-4503-7613-6. S2CID 219397029.
- ^ Peter Selinger, "양자 프로그래밍 언어를 지향한다", 컴퓨터 사이언스의 수학적 구조 14(4): 527-586, 2004.
- ^ a b Jonathan Gratage: QML Research (웹사이트)
- ^ T. Altenkirch, V. Belavkin, J. Gratage, A. Green, A. Sabry, J. K. Vizzotto, QML: Wayback Machine(웹사이트)에서 2006-07-10에 아카이브된 기능성 양자 프로그래밍 언어
- ^ 안드레 반 톤더, "양자 계산을 위한 람다 미적분", SIAM J. Comput., 33(5), 1109–1135. (27페이지), 2004.arXiv에서도 이용 가능: quant-ph/0307150
- ^ Peter Selinger와 Benott Valiron, "고전적 제어에 의한 양자 계산을 위한 람다 미적분", 컴퓨터 사이언스의 수학적 구조 16(3): 527-552, 2006.
- ^ Pablo Arrygi, Gilles Dowek, "선형-대칭 람다-계산: 고차, 부호화 및 합류", 2006년
- ^ "QML: A Functional Quantum Programming Language". 2007-09-26. Archived from the original on 2007-09-26.
- ^ Jonathan Gratage, QML: 기능성 Quantum Programming Language(컴파일러) Wayback Machine에서 2016-03-05 아카이브, 2005–2008
- ^ "The Language Integrated Quantum Operations Simulator". github.io. Retrieved 2017-07-20.
- ^ Quantum Architectures and Computation Group (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
- ^ "StationQ". microsoft.com. Retrieved 2017-07-20.
- ^ "Language-Integrated Quantum Operations: LIQUi >". Microsoft. 2016.
- ^ 필립 메이민, "랜덤화 및 양자화 알고리즘을 표현하기 위한 람다 미적분 확장", 1996
- ^ André van Tonder. "A lambda calculus for quantum computation (website)".
- ^ 피터 셀링거, 베노이트 발리론, 퀀텀 람다 미적분
- ^ "The Quipper Language".
- ^ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron. "The Quipper Language (website)".
- ^ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron (2013). An Introduction to Quantum Programming in Quipper. Lecture Notes in Computer Science. Vol. 7948. pp. 110–124. arXiv:1304.5485. doi:10.1007/978-3-642-38986-3_10. ISBN 978-3-642-38985-6. S2CID 9135905.
- ^ Peter Selinger, benoıt Valiron, "고전적 제어로 양자 계산을 위한 람다 미적분"
- ^ Nicklas Botö, Fabian Forslund, Matilda Blomqvist, Beata Burreau, Marcus Jörgenson, Joel Rudsberg "funQ - 함수 양자 프로그래밍"
추가 정보
- Mingsheng, Ying (2016). Foundations of quantum programming. Cambridge, MA. ISBN 978-0128025468. OCLC 945735387.
외부 링크
- 모든 양자 오픈 소스 소프트웨어 프로젝트의 큐레이티드 리스트
- Quantum Programming Language 관련 참고 문헌 (2007년 5월 갱신)
- 제5회 양자 물리 및 논리 국제 워크숍
- 제4회 양자 프로그래밍 언어 국제 워크숍
- 제3회 양자 프로그래밍 언어 국제 워크숍
- 제2회 양자 프로그래밍 언어 국제 워크숍
- 콴티키의 양자 프로그래밍 언어
- QMASM 매뉴얼
- pyQuil 문서 (양자 컴퓨팅 입문 포함)
- 발판 소스