HOME

TheInfoList



OR:

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 Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
community, with many toolkits and frameworks—such as Qiskit, Cirq, PennyLane, and qBraid SDK—available under open licenses. 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.


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 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, 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

OpenQASM 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 Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
as part of the Quantum Development Kit. It is based on the
LLVM LLVM, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
compiler infrastructure and is designed to represent quantum programs in a way that supports optimization and execution across diverse quantum hardware backends. 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

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''. Many quantum algorithms (including
quantum teleportation Quantum teleportation is a technique for transferring quantum information from a sender at one location to a receiver some distance away. While teleportation is commonly portrayed in science fiction as a means to transfer physical objects from on ...
, quantum error correction, simulation, and optimization algorithms) require a shared memory architecture.


Quantum software development kits

Quantum
software development kit A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
s provide collections of tools to create and manipulate quantum programs. 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 kit A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
s can be used to run quantum circuits on prototype quantum devices, as well as on simulators.


Cirq

An open source project developed by
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
, which uses the Python programming language to create and manipulate quantum circuits. Programs written in Cirq can be run on IonQ, Pasqal, Rigetti, and Alpine Quantum Technologies.


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. 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.


Ocean

An
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
suite of tools developed by D-Wave. Written mostly in the Python programming language, it enables users to formulate problems in Ising Model and Quadratic Unconstrained Binary Optimization formats (QUBO). Results can be obtained by submitting to an online quantum computer in Leap, D-Wave's real-time Quantum Application Environment, customer-owned machines, or classical samplers.


PennyLane

An
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Python library developed by Xanadu Quantum Technologies for differentiable programming of quantum computers. PennyLane provides users the ability to create models using
TensorFlow TensorFlow is a Library (computing), software library for machine learning and artificial intelligence. It can be used across a range of tasks, but is used mainly for Types of artificial neural networks#Training, training and Statistical infer ...
, NumPy, or PyTorch, and connect them with quantum computer backends available from IBMQ, Google Quantum, Rigetti, Quantinuum and Alpine Quantum Technologies.


Perceval

An open-source project created by 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 In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles, suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
. Perceval is also used to connect to Quandela's cloud-based photonic quantum processor.


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. Results are obtained either using a simulator, or by sending jobs to IBM quantum devices.


qBraid SDK

The qBraid SDK is an
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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.


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. This project aims at providing a platform agnostic quantum hardware control framework with drivers for multiple instruments and tools for quantum calibration, characterization and validation. This framework focuses on self-hosted quantum devices by simplifying the software development required in labs.


Qiskit

An open source project developed by
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
. 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. Qiskit is based on the OpenQASM standard for representing quantum circuits. It also supports pulse level control of quantum systems via QiskitPulse standard.


Qrisp

Qrisp is an open source project coordinated by the
Eclipse Foundation The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit organization that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization supp ...
and developed in Python programming by Fraunhofer FOKUS 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 Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
as part of the .NET Framework. Quantum programs can be written and run within
Visual Studio Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
and VSCode using the quantum programming language Q#. Programs developed in the QDK can be run on Microsoft's Azure Quantum, and run on quantum computers from Quantinuum, IonQ, and Pasqal.


Strawberry Fields

An
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Python
library A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
developed by Xanadu Quantum Technologies for designing, simulating, and optimizing
continuous variable In mathematics and statistics, a quantitative variable (mathematics), variable may be continuous or discrete. If it can take on two real number, real values and all the values between them, the variable is continuous in that Interval (mathemati ...
(CV) quantum optical circuits. Three simulators are provided - one in the Fock basis, one using the Gaussian formulation of quantum optics, and one using the
TensorFlow TensorFlow is a Library (computing), software library for machine learning and artificial intelligence. It can be used across a range of tasks, but is used mainly for Types of artificial neural networks#Training, training and Statistical infer ...
machine learning library. Strawberry Fields is also the library for executing programs on Xanadu's quantum photonic hardware.


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.


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, LanQ and Q, SI>.


Ket

Ket 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, 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.A. Baltag and S. Smets
"LQP: The Dynamic Logic of Quantum Information"
Mathematical Structures in Computer Science 16(3):491-525, 2006.


Q language

Q Language is the second implemented imperative quantum programming language. 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#

A language developed by
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
to be used with the Quantum Development Kit.


QCL

Quantum Computation Language (QCL) is one of the first implemented quantum
programming languages A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their syntax (form) and semantics (meaning), usually defined by a formal language. Languages usually provide features ...
. The most important feature of QCL is the support for user-defined operators and functions. Its
syntax In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
resembles the syntax of the
C programming language C (''pronounced'' '' – like the letter c'') is a general-purpose programming language. It was created in the 1970s by Dennis Ritchie and remains very widely used and influential. By design, C's features cleanly reflect the capabilities of ...
and its classical
data type In computer science and computer programming, a data type (or simply type) is a collection or grouping of data values, usually specified by a set of possible values, a set of allowed operations on these values, and/or a representation of these ...
s 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.


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 th
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 The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
language supporting quantum programming in a quantum extension of while-language. This platform includes a compiler of the quantum while-language and a chain of tools for the simulation of quantum computation, optimisation of quantum circuits, termination analysis of quantum programs, and verification of quantum programs.


Quantum pseudocode

Quantum pseudocode proposed by E. Knill is the first formalized language for description of
quantum algorithm In quantum computing, a quantum algorithm is an algorithm that runs on a realistic model of quantum computation, the most commonly used model being the quantum circuit model of computation. A classical (or non-quantum) algorithm is a finite seq ...
s. It was introduced and, moreover, was tightly connected with a model of quantum machine called Quantum Random Access Machine (QRAM).


Scaffold

Scaffold is C-like language, that compiles to QASM and OpenQASM. It is built on top of the
LLVM LLVM, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
Compiler Infrastructure to perform optimizations on Scaffold code before generating a specified instruction set.


Silq

Silq is a high-level programming language for quantum computing with a strong static type system, developed at
ETH Zürich ETH Zurich (; ) is a public university in Zurich, Switzerland. Founded in 1854 with the stated mission to educate engineers and scientists, the university focuses primarily on science, technology, engineering, and mathematics. ETH Zurich ra ...
.


Functional languages

Efforts are underway to develop functional programming languages for
quantum computing A quantum computer is a computer that exploits quantum mechanical phenomena. On small scales, physical matter exhibits properties of wave-particle duality, both particles and waves, and quantum computing takes advantage of this behavior using s ...
. Functional programming languages are well-suited for reasoning about programs. Examples include Selinger's QPL,Peter Selinger
"Towards a quantum programming language"
Mathematical Structures in Computer Science 14(4):527-586, 2004.
and the
Haskell Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
-like language QML by Altenkirch and Grattage.Jonathan Grattage: QML Research
(website)
T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto
QML: A Functional Quantum Programming Language
(website)
Higher-order quantum programming languages, based on
lambda calculus In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using var ...
, have been proposed by van Tonder, Selinger and Valiron and by Arrighi and Dowek.


LIQUi, >

LIQUi, > (pronounced ''liquid'') is a quantum simulation extension on the F# programming language. It is currently being developed by the Quantum Architectures and Computation Group (QuArC) 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. 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.


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 Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
-like quantum programming language by Altenkirch and Grattage. 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 , \phi\rangle to , \phi\rangle\otimes, \phi\rangle, and is not to be confused with the impossible operation of
cloning Cloning is the process of producing individual organisms with identical genomes, either by natural or artificial means. In nature, some organisms produce clones through asexual reproduction; this reproduction of an organism by itself without ...
; 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 Operational semantics is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its exec ...
for QML is given in terms of
quantum circuit In quantum information theory, a quantum circuit is a model for quantum computation, similar to classical circuits, in which a computation is a sequence of quantum gates, measurements, initializations of qubits to known values, and possibly o ...
s, while a
denotational semantics In computer science, denotational semantics (initially known as mathematical semantics or Scott–Strachey semantics) is an approach of formalizing the meanings of programming languages by constructing mathematical objects (called ''denotations'' ...
is presented in terms of superoperators, and these are shown to agree. Both the operational and denotational semantics have been implemented (classically) in Haskell.


Quantum lambda calculi

Quantum lambda calculi are extensions of the classical
lambda calculus In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using var ...
introduced by
Alonzo Church Alonzo Church (June 14, 1903 – August 11, 1995) was an American computer scientist, mathematician, logician, and philosopher who made major contributions to mathematical logic and the foundations of theoretical computer science. He is bes ...
and
Stephen Cole Kleene Stephen Cole Kleene ( ; January 5, 1909 – January 25, 1994) was an American mathematician. One of the students of Alonzo Church, Kleene, along with Rózsa Péter, Alan Turing, Emil Post, and others, is best known as a founder of the branch of ...
in the 1930s. The purpose of quantum lambda calculi is to extend quantum programming languages with a theory of
higher-order function In mathematics and computer science, a higher-order function (HOF) is a function that does at least one of the following: * takes one or more functions as arguments (i.e. a procedural parameter, which is a parameter of a procedure that is itself ...
s. The first attempt to define a quantum lambda calculus was made by Philip Maymin in 1996. His lambda-q calculus is powerful enough to express any quantum computation. However, this language can efficiently solve
NP-complete In computational complexity theory, NP-complete problems are the hardest of the problems to which ''solutions'' can be verified ''quickly''. Somewhat more precisely, a problem is NP-complete when: # It is a decision problem, meaning that for any ...
problems, and therefore appears to be strictly stronger than the standard quantum computational models (such as the quantum Turing machine or the
quantum circuit In quantum information theory, a quantum circuit is a model for quantum computation, similar to classical circuits, in which a computation is a sequence of quantum gates, measurements, initializations of qubits to known values, and possibly o ...
model). Therefore, Maymin's lambda-q calculus is probably not implementable on a physical device . In 2003, André van Tonder defined an extension of the
lambda calculus In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using var ...
suitable for proving correctness of quantum programs. He also provided an implementation in the Scheme programming language. In 2004, Selinger and Valiron defined a strongly typed lambda calculus for quantum computation with a type system based on linear logic.


Quipper

Quipper was published in 2013. It is implemented as an embedded language, using
Haskell Haskell () is a general-purpose, statically typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research, and industrial applications, Haskell pioneered several programming language ...
as the host language. 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


References


Further reading

* *


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
i
Quantiki

QMASM documentation
includin


Scaffold Source
{{Programming paradigms navbox Programming language classification Programming paradigms Quantum computing