Quantum programming

Short description: Computer programming for quantum computers

This article relies too much on references to primary sources. Please improve this by adding secondary or tertiary sources. (August 2024) (Learn how and when to remove this template message)

|

Quantum programming refers to the process of designing and implementing algorithms that operate on quantum systems, typically using quantum circuits composed of quantum gates, measurements, and classical control logic. These circuits are developed to manipulate quantum states for specific computational tasks or experimental outcomes. Quantum programs may be executed on quantum processors, simulated on classical hardware, or implemented through laboratory instrumentation for research purposes.

When working with quantum processor-based systems, quantum programming languages provide high-level abstractions to express quantum algorithms efficiently. These languages often integrate with classical programming environments and support hybrid quantum-classical workflows. The development of quantum software has been strongly influenced by the open-source community, with many toolkits and frameworks—such as Qrisp, Qiskit, Cirq, PennyLane, and qBraid SDK—available under open licenses.[1][2]

Quantum programming can also be used to model or control experimental systems through quantum instrumentation and sensor-based platforms. While some quantum computing architectures—such as linear optical quantum computing using the KLM protocol—require specialized hardware, others use gate-based quantum processors accessible through software interfaces. In both cases, quantum programming serves as the bridge between theoretical algorithms and physical implementation.

## Contents

* 1 Quantum instruction sets
* 1.1 Blackbird
* 1.2 cQASM
* 1.3 OpenQASM
* 1.4 QIR
* 1.5 Quil
* 2 Quantum software development kits
* 2.1 SDKs with access to quantum processors
* 2.1.1 Cirq
* 2.1.2 Classiq
* 2.1.3 Forest
* 2.1.4 MindQuantum
* 2.1.5 Ocean
* 2.1.6 PennyLane
* 2.1.7 Perceval
* 2.1.8 ProjectQ
* 2.1.9 qBraid SDK
* 2.1.10 Qibo
* 2.1.11 Qiskit
* 2.1.12 Qrisp
* 2.1.13 Quantum Development Kit
* 2.1.14 Strawberry Fields
* 2.1.15 t|ket>
* 2.1.16 Wolfram Quantum Framework
* 3 Quantum programming languages
* 3.1 Imperative languages
* 3.1.1 Ket
* 3.1.2 LQP
* 3.1.3 Q language
* 3.1.4 Q#
* 3.1.5 QCL
* 3.1.6 qGCL
* 3.1.7 QMASM
* 3.1.8 Qmod
* 3.1.9 Q|SI>
* 3.1.10 Quantum pseudocode
* 3.1.11 Scaffold
* 3.1.12 Silq
* 3.2 Functional languages
* 3.2.1 LIQUi|>
* 3.2.2 QFC and QPL
* 3.2.3 QML
* 3.2.4 Quantum lambda calculi
* 3.2.5 Quipper
* 4 See also
* 5 References
* 6 Further reading
* 7 External links

## Quantum instruction sets

Quantum instruction sets are used to turn higher level algorithms into physical instructions that can be executed on quantum processors. Sometimes these instructions are specific to a given hardware platform, e.g. ion traps or superconducting qubits.

### Blackbird

Blackbird[3][4] is a quantum instruction set and intermediate representation used by Xanadu Quantum Technologies and Strawberry Fields. It is designed to represent continuous-variable quantum programs that can run on photonic quantum hardware.

### cQASM

cQASM,[5] also known as common QASM, is a hardware-agnostic quantum assembly language which guarantees the interoperability between all the quantum compilation and simulation tools. It was introduced by the QCA Lab at TUDelft.

### OpenQASM

Main article: OpenQASM

OpenQASM[6] is the intermediate representation introduced by IBM for use with Qiskit and the IBM Quantum Platform.

### QIR

Quantum Intermediate Representation (QIR) is a hardware-agnostic intermediate representation developed by Microsoft as part of the Quantum Development Kit. It is based on the LLVM compiler infrastructure and is designed to represent quantum programs in a way that supports optimization and execution across diverse quantum hardware backends.[7] QIR serves as a common target for quantum compilers, enabling interoperation between different programming languages, such as Q#, and low-level hardware control layers. It is maintained by the QIR Alliance, a collaborative group of academic and industry partners.

### Quil

Main article: Quil (instruction set architecture)

Quil is an instruction set architecture for quantum computing that first introduced a shared quantum/classical memory model. It was introduced by Robert Smith, Michael Curtis, and William Zeng in A Practical Quantum Instruction Set Architecture.[8] Many quantum algorithms (including quantum teleportation, quantum error correction, simulation,[9][10] and optimization algorithms[11]) require a shared memory architecture.

## Quantum software development kits

Quantum software development kits provide collections of tools to create and manipulate quantum programs.[12] They also provide the means to simulate the quantum programs or prepare them to be run using cloud-based quantum devices and self-hosted quantum devices.

### SDKs with access to quantum processors

The following software development kits can be used to run quantum circuits on prototype quantum devices, as well as on simulators.

#### Cirq

Main article: Cirq

An open source project developed by Google, which uses the Python programming language to create and manipulate quantum circuits. Programs written in Cirq can be run on IonQ, Pasqal,[13] Rigetti, and Alpine Quantum Technologies.[14]

#### Classiq

A cloud-based quantum IDE developed by Classiq, uses a high-level quantum language, Qmod, to generate scalable and efficient quantum circuits with a hardware-aware synthesis engine, that can be deployed across a wide range of QPUs. The platform includes a large library of quantum algorithms.

#### Forest

An open source project developed by Rigetti, which uses the Python programming language to create and manipulate quantum circuits. Results are obtained either using simulators or prototype quantum devices provided by Rigetti. As well as the ability to create programs using basic quantum operations, higher level algorithms are available within the Grove package.[15] Forest is based on the Quil instruction set.

#### MindQuantum

MindQuantum is a quantum computing framework based on MindSpore, focusing on the implementation of NISQ algorithms.[16][17][18]

#### Ocean

#### PennyLane

An open-source Python library developed by Xanadu Quantum Technologies for differentiable programming of quantum computers.[19][20][21][22] PennyLane provides users the ability to create models using TensorFlow, NumPy, or PyTorch, and connect them with quantum computer backends available from IBMQ, Google Quantum, Rigetti, Quantinuum[23] and Alpine Quantum Technologies.[14][24]

#### Perceval

An open-source project created by Quandela [fr; fr] for designing photonic quantum circuits and developing quantum algorithms, based on Python. Simulations are run either on the user's own computer or on the cloud. Perceval is also used to connect to Quandela's cloud-based photonic quantum processor.[25][26]

Sample code using projectq with Python

#### ProjectQ

An open source project developed at the Institute for Theoretical Physics at ETH, which uses the Python programming language to create and manipulate quantum circuits.[27] Results are obtained either using a simulator, or by sending jobs to IBM quantum devices.

#### qBraid SDK

The qBraid SDK is an open-source platform-agnostic quantum runtime framework developed by qBraid. It enables users to write quantum programs once and execute them across various quantum hardware and simulators without modifying the code. The SDK supports multiple quantum programming libraries, including Qiskit, Cirq, PennyLane, PyQuil, and Braket, among others. It features a graph-based transpiler that facilitates conversion between different quantum program types, allowing seamless interoperability between frameworks. The SDK also provides tools for job submission, result retrieval, and circuit visualization. It is integrated with qBraid Lab, offering access to over 20 quantum devices and simulators from providers such as IonQ, Rigetti, QuEra, and IQM.[28][29]

#### Qibo

An open source full-stack API for quantum simulation, quantum hardware control and calibration developed by multiple research laboratories, including QRC, CQT and INFN. Qibo is a modular framework which includes multiple backends for quantum simulation and hardware control.[30][31] This project aims at providing a platform agnostic quantum hardware control framework with drivers for multiple instruments[32] and tools for quantum calibration, characterization and validation.[33] This framework focuses on self-hosted quantum devices by simplifying the software development required in labs.

#### Qiskit

Main article: Software:Qiskit

An open source project developed by IBM.[34] Quantum circuits are created and manipulated using Python. Results are obtained either using simulators that run on the user's own device, simulators provided by IBM or prototype quantum devices provided by IBM. As well as the ability to create programs using basic quantum operations, higher level tools for algorithms and benchmarking are available within specialized packages.[35] Qiskit is based on the OpenQASM standard for representing quantum circuits. It also supports pulse level control of quantum systems via QiskitPulse standard.[36]

#### Qrisp

Main article: Software:Qrisp

Qrisp[37] is an open source project coordinated by the Eclipse Foundation[38] and developed in Python programming by Fraunhofer FOKUS[39] Qrisp is a high-level programming language for creating and compiling quantum algorithms. Its structured programming model enables scalable development and maintenance. The expressive syntax is based on variables instead of qubits, with the QuantumVariable as core class, and functions instead of gates. Additional tools, such as a performant simulator and automatic uncomputation, complement the extensive framework. Furthermore, it is platform independent, since it offers alternative compilation of elementary functions down to the circuit level, based on device-specific gate sets.

#### Quantum Development Kit

A project developed by Microsoft[40] as part of the .NET Framework. Quantum programs can be written and run within Visual Studio and VSCode using the quantum programming language Q#. Programs developed in the QDK can be run on Microsoft's Azure Quantum,[41] and run on quantum computers from Quantinuum,[23] IonQ, and Pasqal.[13]

#### Strawberry Fields

An open-source Python library developed by Xanadu Quantum Technologies for designing, simulating, and optimizing continuous variable (CV) quantum optical circuits.[42][43] Three simulators are provided—one in the Fock basis, one using the Gaussian formulation of quantum optics,[44] and one using the TensorFlow machine learning library. Strawberry Fields is also the library for executing programs on Xanadu's quantum photonic hardware.[45][46]

#### t|ket>

A quantum programming environment and optimizing compiler developed by Quantinuum that targets simulators and several trapped-ion quantum hardware backends, released in December 2018.[47]

#### Wolfram Quantum Framework

An add-on Wolfram Language paclet that provides a symbolic, high-level representation for quantum objects such as basis, states, operators, channels, measurements, and circuits, integrated with Mathematica.[48] The framework includes tools for simulation and analysis—such as time evolution, measurement simulation, entanglement monotones, partial trace/transpose, discrete Wigner transforms, stabilizer methods, and tensor-network utilities—as well as a library of named constructs (e.g., Bell/GHZ states, Pauli operators, Fourier, Grover etc.).[48] It offers built-in visualization (e.g., circuit diagrams and Bloch-sphere plots) and interoperability with external platforms, including conversion to Qiskit and Amazon Braket formats and the ability to send queries to quantum processing units (QPUs) via service connections.

## Quantum programming languages

There are two main groups of quantum programming languages: imperative quantum programming languages and functional quantum programming languages.

### Imperative languages

The most prominent representatives of the imperative languages are QCL,[49] LanQ[50] and Q|SI>.[51]

#### Ket

Ket[52] is an open-source embedded language designed to facilitate quantum programming, leveraging the familiar syntax and simplicity of Python. It serves as an integral component of the Ket Quantum Programming Platform,[53] seamlessly integrating with a Rust runtime library and a quantum simulator. Maintained by Quantuloop, the project emphasizes accessibility and versatility for researchers and developers. The following example demonstrates the implementation of a Bell state using Ket:

from ket import *
a, b = quant(2) # Allocate two quantum bits
H(a) # Put qubit `a` in a superposition
cnot(a, b) # Entangle the two qubits in the Bell state
m_a = measure(a) # Measure qubit `a`, collapsing qubit `b` as well
m_b = measure(b) # Measure qubit `b`
# Assert that the measurement of both qubits will always be equal
assert m_a.value == m_b.value

#### LQP

The Logic of Quantum Programs (LQP) is a dynamic quantum logic, capable of expressing important features of quantum measurements and unitary evolutions of multi-partite states, and provides logical characterizations of various forms of entanglement. The logic has been used to specify and verify the correctness of various protocols in quantum computation.[54][55]

#### Q language

Q Language is the second implemented imperative quantum programming language.[56] Q Language was implemented as an extension of C++ programming language. It provides classes for basic quantum operations like QHadamard, QFourier, QNot, and QSwap, which are derived from the base class Qop. New operators can be defined using C++ class mechanism.

Quantum memory is represented by class Qreg.

Qreg x1; // 1-qubit quantum register with initial value 0
Qreg x2(2,0); // 2-qubit quantum register with initial value 0

The computation process is executed using a provided simulator. Noisy environments can be simulated using parameters of the simulator.

#### Q#

Main article: Q Sharp

A language developed by Microsoft to be used with the Quantum Development Kit.[57]

#### QCL

Main article: Quantum Computation Language

Quantum Computation Language (QCL) is one of the first implemented quantum programming languages.[58] The most important feature of QCL is the support for user-defined operators and functions. Its syntax resembles the syntax of the C programming language and its classical data types are similar to primitive data types in C. One can combine classical code and quantum code in the same program.

#### qGCL

Quantum Guarded Command Language (qGCL) was defined by P. Zuliani in his PhD thesis. It is based on Guarded Command Language created by Edsger Dijkstra.

It can be described as a language of quantum programs specification.

#### QMASM

Quantum Macro Assembler (QMASM) is a low-level language specific to quantum annealers such as the D-Wave.[59]

#### Qmod

Quantum Modeling (Qmod) language is a high-level language that abstracts away the gate-level qubit operation, providing a functional approach to the implementation of quantum algorithms on quantum registers. The language is part of the Classiq platform and can be used directly with its native syntax, through a Python SDK, or with a visual editor, all methods can take advantage of the larger library of algorithms and the efficient circuit optimization.

#### Q|SI>

Q|SI> is a platform embedded in .Net language supporting quantum programming in a quantum extension of while-language.[51][60] This platform includes a compiler of the quantum while-language[61] and a chain of tools for the simulation of quantum computation, optimisation of quantum circuits, termination analysis of quantum programs,[62] and verification of quantum programs.[63][64]

#### Quantum pseudocode

Quantum pseudocode proposed by E. Knill is the first formalized language for description of quantum algorithms. It was introduced and, moreover, was tightly connected with a model of quantum machine called Quantum Random Access Machine (QRAM).

#### Scaffold

Scaffold is a C-like language, that compiles to QASM and OpenQASM. It is built on top of the LLVM Compiler Infrastructure to perform optimizations on Scaffold code before generating a specified instruction set.[65][66]

#### Silq

Silq is a high-level programming language for quantum computing with a strong static type system, developed at ETH Zürich.[67][68]

### Functional languages

Efforts are underway to develop functional programming languages for quantum computing. Functional programming languages are well-suited for reasoning about programs. Examples include Selinger's QPL,[69] and the Haskell-like language QML by Altenkirch and Grattage.[70][71] Higher-order quantum programming languages, based on lambda calculus, have been proposed by van Tonder,[72] Selinger and Valiron[73] and by Arrighi and Dowek.[74]

#### LIQUi|>

LIQUi|> (pronounced liquid) is a quantum simulation extension on the F# programming language.[75] It is currently being developed by the Quantum Architectures and Computation Group (QuArC)[76] part of the StationQ efforts at Microsoft Research. LIQUi|> seeks to allow theorists to experiment with quantum algorithm design before physical quantum computers are available for use.[77]

It includes a programming language, optimization and scheduling algorithms, and quantum simulators. LIQUi|> can be used to translate a quantum algorithm written in the form of a high-level program into the low-level machine instructions for a quantum device.[78]

#### QFC and QPL

QFC and QPL are two closely related quantum programming languages defined by Peter Selinger. They differ only in their syntax: QFC uses a flow chart syntax, whereas QPL uses a textual syntax. These languages have classical control flow but can operate on quantum or classical data. Selinger gives a denotational semantics for these languages in a category of superoperators.

#### QML

QML is a Haskell-like quantum programming language by Altenkirch and Grattage.[79][70] Unlike Selinger's QPL, this language takes duplication, rather than discarding, of quantum information as a primitive operation. Duplication in this context is understood to be the operation that maps |ϕ⟩ to |ϕ⟩⊗|ϕ⟩, and is not to be confused with the impossible operation of cloning; the authors claim it is akin to how sharing is modeled in classical languages. QML also introduces both classical and quantum control operators, whereas most other languages rely on classical control.

An operational semantics for QML is given in terms of quantum circuits, while a denotational semantics is presented in terms of superoperators, and these are shown to agree. Both the operational and denotational semantics have been implemented (classically) in Haskell.[80]

#### Quantum lambda calculi

Quantum lambda calculi are extensions of the classical lambda calculus introduced by Alonzo Church and Stephen Cole Kleene in the 1930s. The purpose of quantum lambda calculi is to extend quantum programming languages with a theory of higher-order functions.

In 2003, André van Tonder defined an extension of the lambda calculus suitable for proving correctness of quantum programs. He also provided an implementation in the Scheme programming language.[81]

In 2004, Selinger and Valiron defined a strongly typed lambda calculus for quantum computation with a type system based on linear logic.[82]

#### Quipper

Quipper was published in 2013.[83][84] It is implemented as an embedded language, using Haskell as the host language.[85] For this reason, quantum programs written in Quipper are written in Haskell using provided libraries. For example, the following code implements preparation of a superposition

import Quipper

spos :: Bool -> Circ Qubit
spos b = do q <- qinit b
r <- hadamard q
return r

## See also

* List of quantum computing journals

## References

1. ↑ 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. doi:10.1088/2058-9565/aaa5cc. ISSN 2058-9565. Bibcode: 2018QS&T....3b0501H.
2. ↑ "Qiskit GitHub repository". https://github.com/qiskit/qiskit.
3. ↑ "Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation". https://quantum-blackbird.readthedocs.io/en/latest/.
4. ↑ 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" (in en-GB). Quantum 3. doi:10.22331/q-2019-03-11-129. Bibcode: 2019Quant...3..129K.
5. ↑ Bertels, K.; Almudever, C. G.; Hogaboam, J. W.; Ashraf, I.; Guerreschi, G. G.; Khammassi, N. (May 24, 2018). "cQASM v1.0: Towards a Common Quantum Assembly Language". arXiv:1805.09607v1 [quant-ph].
6. ↑ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04, https://github.com/IBM/qiskit-openqasm, retrieved 2017-07-06
7. ↑ "Quantum Intermediate Representation (QIR)". https://github.com/qir-alliance/qir-spec.
8. ↑ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "A Practical Quantum Instruction Set Architecture". arXiv:1608.03355 [quant-ph].
9. ↑ 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). doi:10.1088/1367-2630/18/2/023023. ISSN 1367-2630. Bibcode: 2016NJPh...18b3023M.
10. ↑ 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].
11. ↑ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). "A Quantum Approximate Optimization Algorithm". arXiv:1411.4028 [quant-ph].
12. ↑ 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. doi:10.1088/2058-9565/aaa5cc. ISSN 2058-9565. Bibcode: 2018QS&T....3b0501H.
13. ↑ 13.0 13.1 "PASQAL". https://pasqal.io/.
14. ↑ 14.0 14.1 "Home". https://www.aqt.eu/.
15. ↑ "Welcome to the Documentation for Grove! – Grove 1.7.0 documentation". https://grove-docs.readthedocs.io/en/latest/.
16. ↑ "MindSpore Quantum Documentation". https://www.mindspore.cn/mindquantum/docs/en/master/index.html.
17. ↑ Xu, Xusheng; et al. (2024). "MindSpore Quantum: A User-Friendly, High-Performance, and AI-Compatible Quantum Computing Framework". arXiv:2406.17248 [quant-ph].
18. ↑ "mindquantum". https://github.com/mindspore-ai/mindquantum.
19. ↑ "PennyLane 0.14.1 documentation". https://pennylane.readthedocs.io/en/stable/.
20. ↑ "AWS joins PennyLane, an open-source framework that melds machine learning with quantum computing" (in en-US). 2021-02-17. https://siliconangle.com/2021/02/17/aws-throws-weight-behind-pennylane-open-source-framework-melds-machine-learning-quantum-computing/.
21. ↑ "SD Times Open-Source Project of the Week: PennyLane" (in en-US). 2021-02-26. https://sdtimes.com/open-source/sd-times-open-source-project-of-the-week-pennylane/.
22. ↑ Salamone, Salvatore (2020-12-13). "Real-time Analytics News Roundup for Week Ending December 12" (in en-US). https://www.rtinsights.com/real-time-analytics-news-roundup-for-week-ending-december-12/.
23. ↑ 23.0 23.1 "Accelerating Quantum Computing". https://www.quantinuum.com/.
24. ↑ "Plugins and ecosystem" (in en). https://pennylane.ai/plugins.html.
25. ↑ "La puissance d'un ordinateur quantique testée en ligne (The power of a quantum computer tested online)". Le Monde.fr (Le Monde). November 22, 2022. https://www.lemonde.fr/sciences/article/2022/11/22/la-puissance-d-un-ordinateur-quantique-testee-en-ligne_6151063_1650684.html.
26. ↑ Heurtel, Nicolas; Fyrillas, Andreas; de Gliniasty, Grégoire; Le Bihan, Raphaël; Malherbe, Sébastien; Pailhas, Marceau; Bertasi, Eric; Bourdoncle, Boris et al. (February 21, 2023). "Perceval: A Software Platform for Discrete Variable Photonic Quantum Computing". Quantum 7. doi:10.22331/q-2023-02-21-931. Bibcode: 2023Quant...7..931H. https://quantum-journal.org/papers/q-2023-02-21-931/. Retrieved March 27, 2023.
27. ↑ "Home". https://projectq.ch/.
28. ↑ "qBraid SDK Overview". https://docs.qbraid.com/sdk/user-guide/overview.
29. ↑ "qBraid Announces qBraid SDK Integrated with Amazon Braket on qBraid Lab". https://www.qbraid.com/blog-posts/qbraid-announces-qbraid-sdk-integrated-with-amazon-braket.
30. ↑ Efthymiou, Stavros; Ramos-Calderer, Sergi; Bravo-Prieto, Carlos; Pérez-Salinas, Adrián; García-Martín, Diego; Garcia-Saez, Artur; Latorre, José Ignacio; Carrazza, Stefano (2022-01-01). "Qibo: a framework for quantum simulation with hardware acceleration". Quantum Science and Technology 7 (1): 015018. doi:10.1088/2058-9565/ac39f5. ISSN 2058-9565. Bibcode: 2022QS&T....7a5018E. https://iopscience.iop.org/article/10.1088/2058-9565/ac39f5.
31. ↑ Efthymiou, Stavros; Lazzarin, Marco; Pasquale, Andrea; Carrazza, Stefano (2022-09-22). "Quantum simulation with just-in-time compilation" (in en-GB). Quantum 6. doi:10.22331/q-2022-09-22-814. Bibcode: 2022Quant...6..814E. https://quantum-journal.org/papers/q-2022-09-22-814/. Retrieved October 20, 2022.
32. ↑ "Qibolab". November 2, 2022. https://github.com/qiboteam/qibolab.
33. ↑ "Qibocal". November 1, 2022. https://github.com/qiboteam/qibocal.
34. ↑ "qiskit.org". https://qiskit.org/.
35. ↑ "Qiskit Overview". https://qiskit.org/overview/.
36. ↑ 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].
37. ↑ "Qrisp official website". https://www.qrisp.eu/.
38. ↑ "Eclipse Foundation (website)". https://www.eclipse.org/org/foundation/.
39. ↑ "Fraunhofer FOKUS (website)". https://www.fokus.fraunhofer.de/.
40. ↑ "Azure Quantum documentation, QDK & Q# API reference - Azure Quantum". https://learn.microsoft.com/en-us/azure/quantum/.
41. ↑ "What is Azure Quantum? - Azure Quantum". January 11, 2023. https://learn.microsoft.com/en-us/azure/quantum/overview-azure-quantum.
42. ↑ "Strawberry Fields – Strawberry Fields 0.8.0 documentation" (in en). https://strawberryfields.readthedocs.io/en/latest/.
43. ↑ 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. doi:10.22331/q-2019-03-11-129. Bibcode: 2019Quant...3..129K.
44. ↑ 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. doi:10.1103/RevModPhys.84.621. Bibcode: 2012RvMP...84..621W.
45. ↑ "Hardware". https://strawberryfields.ai/photonics/hardware/index.html.
46. ↑ "In the Race to Hundreds of Qubits, Photons May Have "Quantum Advantage"" (in en). 5 March 2021. https://spectrum.ieee.org/race-to-hundreds-of-photonic-qubits-xanadu-scalable-photon.
47. ↑ "pytket". 22 January 2022. https://github.com/CQCL/pytket.
48. ↑ 48.0 48.1 "QuantumFramework". https://resources.wolframcloud.com/PacletRepository/resources/Wolfram/QuantumFramework/.
49. ↑ Omer, Bernhard. "The QCL Programming Language". http://tph.tuwien.ac.at/~oemer/qcl.html.
50. ↑ Hynek Mlnařík. "LanQ – a quantum imperative programming language". https://lanq.sourceforge.net/.
51. ↑ 51.0 51.1 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. doi:10.1360/N112017-00095.
52. ↑ Da Rosa, Evandro Chagas Ribeiro; De Santiago, Rafael (2022-01-31). "Ket Quantum Programming" (in en). ACM Journal on Emerging Technologies in Computing Systems 18 (1): 1–25. doi:10.1145/3474224. ISSN 1550-4832. https://dl.acm.org/doi/10.1145/3474224.
53. ↑ "Ket Quantum Programming" (in en). https://quantumket.org.
54. ↑ A. Baltag and S. Smets, "LQP: The Dynamic Logic of Quantum Information", Mathematical Structures in Computer Science 16(3):491-525, 2006.
55. ↑ Baltag, Alexandru; Bergfeld, Jort; Kishida, Kohei; Sack, Joshua; Smets, Sonja; Zhong, Shengyang (2014). "PLQP & Company: Decidable Logics for Quantum Algorithms". International Journal of Theoretical Physics 53 (10): 3628–3647. doi:10.1007/s10773-013-1987-3. Bibcode: 2014IJTP...53.3628B. https://link.springer.com/article/10.1007/s10773-013-1987-3.
56. ↑ "Software for the Q language". 2001-11-23. http://sra.itc.it/people/serafini/qlang/.
57. ↑ "Introduction to Q# & Quantum Development Kit - Azure Quantum". March 30, 2023. https://learn.microsoft.com/en-us/azure/quantum/overview-what-is-qsharp-and-qdk.
58. ↑ "QCL - A Programming Language for Quantum Computers". http://tph.tuwien.ac.at/~oemer/qcl.html.
59. ↑ Scott Pakin, "A Quantum Macro Assembler", Proceedings of the 20th Annual IEEE High Performance Extreme Computing Conference 2016
60. ↑ 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.
61. ↑ 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. https://www.computer.org/csdl/trans/ts/2011/04/tts2011040466-abs.html.
62. ↑ Ying, Mingsheng; Yu, Nengkun; Feng, Yuan; Duan, Runyao (2013). "Verification of quantum programs". Science of Computer Programming 78 (9): 1679–1700. doi:10.1016/j.scico.2013.03.016.
63. ↑ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017), "Invariants of quantum programs: Characterisations and generation", ACM SIGPLAN Notices 52: 818–832, doi:10.1145/3093333.3009840
64. ↑ 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].
65. ↑ Javadi-Abhari, Ali. "Scaffold: Quantum Programming Language". Princeton University. https://www.cs.princeton.edu/research/techreps/TR-934-12.
66. ↑ Litteken, Andrew (28 May 2020). "An updated LLVM-based quantum research compiler with further OpenQASM support". Quantum Science and Technology 5 (3): 034013. doi:10.1088/2058-9565/ab8c2c. Bibcode: 2020QS&T....5c4013L.
67. ↑ "What is Silq?". https://silq.ethz.ch/.
68. ↑ Bichsel, Benjamin; Baader, Maximilian; Gehr, Timon; Vechev, Martin (2020-06-11). "Silq: A high-level quantum language with safe uncomputation and intuitive semantics" (in en). Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. London UK: ACM. pp. 286–300. doi:10.1145/3385412.3386007. ISBN 978-1-4503-7613-6.
69. ↑ Peter Selinger, "Towards a quantum programming language", Mathematical Structures in Computer Science 14(4):527-586, 2004.
70. ↑ 70.0 70.1 Jonathan Grattage: QML Research (website)
71. ↑ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto, QML: A Functional Quantum Programming Language. (website).
72. ↑ Andre van Tonder (2004), "A Lambda Calculus for Quantum Computation", SIAM J. Comput., 33(5), pp. 1109–1135. Also available from arXiv:quant-ph/0307150.
73. ↑ Peter Selinger and Benoît Valiron (2006), "A lambda calculus for quantum computation with classical control", Mathematical Structures in Computer Science 16(3): 527–552.
74. ↑ Pablo Arrighi, Gilles Dowek, "Linear-algebraic lambda-calculus: higher-order, encodings and confluence", 2006.
75. ↑ "The Language Integrated Quantum Operations Simulator". https://stationq.github.io/Liquid/.
76. ↑ Quantum Architectures and Computation Group (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
77. ↑ "StationQ". https://stationq.microsoft.com/.
78. ↑ "Language-Integrated Quantum Operations: LIQUi|>". 2016. https://www.microsoft.com/en-us/research/project/language-integrated-quantum-operations-liqui/.
79. ↑ "QML: A Functional Quantum Programming Language". 2007-09-26. http://sneezy.cs.nott.ac.uk/QML/.
80. ↑ Jonathan Grattage, QML: A Functional Quantum Programming Language (compiler) , 2005–2008
81. ↑ van Tonder, André. "A lambda calculus for quantum computation (website)". https://www.het.brown.edu/people/andre/qlambda.
82. ↑ Peter Selinger, Benoˆıt Valiron, "Quantum Lambda Calculus".
83. ↑ "The Quipper Language". http://www.mathstat.dal.ca/~selinger/quipper/.
84. ↑ Green, Alexander S.; Lumsdaine, Peter LeFanu; Ross, Neil J.; Selinger, Peter; Valiron, Benoît. "The Quipper Language (website)". http://www.mathstat.dal.ca/~selinger/quipper/.
85. ↑ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron (2013). "An Introduction to Quantum Programming in Quipper". Reversible Computation. Lecture Notes in Computer Science. 7948. pp. 110–124. doi:10.1007/978-3-642-38986-3_10. ISBN 978-3-642-38985-6.

## Further reading

* Mingsheng, Ying (2024). Foundations of quantum programming (2nd ed.). Cambridge, Massachusetts: Morgan Kaufmann. 978-0-4431-5943-5 (eBook). ISBN 978-0-4431-5942-8. OCLC 1406095194.
* Serrano, Manuel A., ed (2022). Quantum Software Engineering (1st ed.). Cham, Switzerland: Springer. doi:10.1007/978-3-031-05324-5. 978-3-031-05326-9 (softcover) & 978-3-031-05324-5 (eBook). ISBN 978-3-031-05323-8. OCLC 1347696597.

## External links

* Curated list of all quantum open-source software projects
* Bibliography on Quantum Programming Languages (updated in May 2007)
* Quantum Physics and Logic (QPL) Conference Series (L stood for 'Languages' until 2006)
* Quantum programming language in Quantiki
* QMASM documentation
* pyQuil documentation including Introduction to Quantum Computing.
* Scaffold Source

* v
* t
* e

Quantum information science

General|

* Quantum computing
* Qubit
* physical vs. logical
* DiVincenzo's criteria
* Quantum information
* Quantum programming
* Quantum processors
* Cloud-based quantum computing
* Timeline of quantum computing

Theorems|

* Bell's theorem
* Gleason's theorem
* Gottesman–Knill theorem
* Holevo's theorem
* Margolus–Levitin theorem
* No-broadcast theorem
* No-cloning theorem
* No-communication theorem
* No-deleting theorem
* No-hiding theorem
* No-teleportation theorem
* PBR theorem
* Quantum threshold theorem

Quantum
communication|

* Quantum capacity
* Classical capacity
* Entanglement-assisted classical capacity
* Quantum channel
* Quantum network
* Quantum cryptography
* Quantum key distribution
* BB84
* SARG04
* Three-stage quantum cryptography protocol
* Quantum teleportation
* Superdense coding
* LOCC
* Entanglement distillation

Quantum algorithms|

* Universal quantum simulator
* Deutsch–Jozsa algorithm
* Grover's algorithm
* Quantum Fourier transform
* Shor's algorithm
* Simon's problem
* Quantum phase estimation algorithm
* Quantum counting algorithm
* Quantum annealing
* Quantum algorithm for linear systems of equations
* Amplitude amplification

Quantum
complexity theory|

* Quantum Turing machine
* EQP
* BQP
* QMA
* PostBQP
* QIP

Quantum
computing models|

* Quantum circuit
* Quantum logic gate
* One-way quantum computer
* cluster state
* Adiabatic quantum computation
* Topological quantum computer

Quantum
error correction|

* Stabilizer codes
* Entanglement-Assisted Quantum Error Correction
* Shor code
* Steane code
* CSS code
* Quantum convolutional codes
* Toric code

Physical
implementations|

| Quantum optics|

* Cavity QED
* Circuit QED
* Linear optical quantum computing
* KLM protocol
* Boson sampling

|

Ultracold atoms|

* Trapped ion quantum computer
* Optical lattice

Spin-based|

* Nuclear magnetic resonance QC
* Kane QC
* Loss–DiVincenzo QC
* Nitrogen-vacancy center

Superconducting
quantum computing|

* Charge qubit
* Flux qubit
* Phase qubit
* Transmon

Software|

* libquantum
* OpenQASM
* Q#
* Qiskit
* IBM Q Experience

* v
* t
* e

Emerging technologies

Fields|

| Agriculture|

* Agricultural robot
* Cellular agriculture
* Closed ecological systems
* Cultured meat
* Genetically modified food
* Precision agriculture
* Vertical farming

|

Architecture|

* Arcology
* Building printing
* Contour crafting
* Domed city

Biomedical|

* Artificial uterus
* Ampakine
* Brain transplant
* Cryonics
* Cryoprotectant
* Cryopreservation
* Vitrification
* Suspended animation
* De-extinction
* Genetic engineering
* Gene therapy
* Head transplant
* Isolated brain
* Life extension
* Strategies for Engineered Negligible Senescence
* Nanomedicine
* Nanosensors
* Organ printing
* Personalized medicine
* Regenerative medicine
* Stem-cell therapy
* Tissue engineering
* Robot-assisted surgery
* Synthetic biology
* Synthetic genomics
* Virotherapy
* Oncolytic virus
* Tricorder
* Whole genome sequencing

Displays|

| Next generation|

* FED
* FLCD
* iMoD
* Laser
* LPD
* OLED
* OLET
* QD-LED
* SED
* TPD
* TDEL
* TMOS
* MicroLED

|

Screenless|

* Bionic contact lens
* Head-mounted display
* Head-up display
* Optical head-mounted display
* Virtual retinal display

Other|

* Autostereoscopy
* Flexible display
* Holographic display
* Computer-generated holography
* Multi-primary color display
* Ultra HD
* Volumetric display

Electronics|

* Electronic nose
* E-textiles
* Flexible electronics
* Molecular electronics
* Nanoelectromechanical systems
* Memristor
* Spintronics
* Thermal copper pillar bump
* Twistronics

Energy|

| Production|

* Airborne wind turbine
* Artificial photosynthesis
* Biofuels
* Carbon-neutral fuel
* Concentrated solar power
* Fusion power
* Home fuel cell
* Hydrogen economy
* Methanol economy
* Molten salt reactor
* Nantenna
* Photovoltaic pavement
* Space-based solar power
* Vortex engine

|

Storage|

* Beltway battery
* Compressed air energy storage
* Flywheel energy storage
* Grid energy storage
* Lithium–air battery
* Molten-salt battery
* Nanowire battery
* Research in lithium-ion batteries
* Silicon–air battery
* Thermal energy storage
* Ultracapacitor

Other|

* Smart grid
* Wireless power

Information and
communications

* Ambient intelligence
* Internet of things
* Artificial intelligence
* Applications of artificial intelligence
* Progress in artificial intelligence
* Machine translation
* Mobile translation
* Machine vision
* Semantic Web
* Speech recognition
* Atomtronics
* Carbon nanotube field-effect transistor
* Cybermethodology
* Fourth-generation optical discs
* 3D optical data storage
* Holographic data storage
* GPGPU
* Memory
* CBRAM
* FRAM
* Millipede
* MRAM
* NRAM
* PRAM
* Racetrack memory
* RRAM
* SONOS
* Optical computing
* RFID
* Chipless RFID
* Software-defined radio
* Three-dimensional integrated circuit

Manufacturing|

* 3D printing
* Claytronics
* Molecular assembler
* Utility fog

Materials science|

* Aerogel
* Amorphous metal
* Artificial muscle
* Conductive polymer
* Femtotechnology
* Fullerene
* Graphene
* High-temperature superconductivity
* High-temperature superfluidity
* Linear acetylenic carbon
* Metamaterials
* Metamaterial cloaking
* Metal foam
* Multi-function structures
* Nanotechnology
* Carbon nanotubes
* Molecular nanotechnology
* Nanomaterials
* Picotechnology
* Programmable matter
* Quantum dots
* Silicene
* Superalloy
* Synthetic diamond

Military|

* Antimatter weapon
* Caseless ammunition
* Directed-energy weapon
* Laser
* Maser
* Particle-beam weapon
* Sonic weapon
* Coilgun
* Railgun
* Plasma weapon
* Pure fusion weapon
* Stealth technology
* Vortex ring gun

Neuroscience|

* Artificial brain
* Brain–computer interface
* Electroencephalography
* Mind uploading
* Brain-reading
* Neuroinformatics
* Neuroprosthetics
* Bionic eye
* Brain implant
* Exocortex
* Retinal implant

Quantum|

* Quantum algorithms
* Quantum amplifier
* Quantum bus
* Quantum channel
* Quantum circuit
* Quantum complexity theory
* Quantum computing
* Quantum cryptography
* Quantum dynamics
* Quantum electronics
* Quantum error correction
* Quantum imaging
* Quantum information
* Quantum key distribution
* Quantum logic
* Quantum logic gates
* Quantum machine
* Quantum machine learning
* Quantum metamaterial
* Quantum metrology
* Quantum network
* Quantum neural network
* Quantum optics
* Quantum programming
* Quantum sensing
* Quantum simulator
* Quantum teleportation

Robotics|

* Domotics
* Nanorobotics
* Powered exoskeleton
* Self-reconfiguring modular robot
* Swarm robotics
* Uncrewed vehicle

Space science|

| Launch|

* Fusion rocket
* Non-rocket spacelaunch
* Mass driver
* Orbital ring
* Skyhook
* Space elevator
* Space fountain
* Space tether
* Reusable launch system

|

Propulsion|

* Beam-powered propulsion
* Ion thruster
* Laser propulsion
* Plasma propulsion engine
* Helicon thruster
* VASIMR
* Nuclear pulse propulsion
* Solar sail

Other|

* Interstellar travel
* Propellant depot
* Laser communication in space

Transport|

| Aerial|

* Adaptive compliant wing
* Backpack helicopter
* Delivery drone
* Flying car
* High-altitude platform
* Jet pack
* Pulse detonation engine
* Scramjet
* Spaceplane
* Supersonic transport

|

Land|

* Airless tire
* Alternative fuel vehicle
* Hydrogen vehicle
* Driverless car
* Ground effect train
* Hyperloop
* Maglev train
* Personal rapid transit
* Transit Elevated Bus
* Vactrain
* Vehicular communication systems

Pipeline|

* Pneumatic transport
* Automated vacuum collection

Other|

* Anti-gravity
* Cloak of invisibility
* Digital scent technology
* Force field
* Plasma window
* Immersive virtual reality
* Magnetic refrigeration
* Phased-array optics

Topics|

* Collingridge dilemma
* Differential technological development
* Disruptive Innovation
* Ephemeralization
* Exploratory engineering
* Fictional technology
* Proactionary principle
* Technological change
* Technological unemployment
* Technological convergence
* Technological evolution
* Technological paradigm
* Technology forecasting
* Accelerating change
* Moore's law
* Technological singularity
* Technology scouting
* Technology readiness level
* Technology roadmap
* Transhumanism

* Category
* List

Template:Programming paradigms navbox

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Quantum programming. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Quantum_programming&oldid=4230148"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template