Quantum programming
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.
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.is the intermediate representation introduced by IBM for use with Qiskit and the IBM Quantum Platform.QIR
Quantum Intermediate Representation 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. 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.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 require a shared memory architecture.Quantum software development kits 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 kits can be used to run quantum circuits on prototype quantum devices, as well as on simulators.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, 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 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. 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 Python library developed by Xanadu Quantum Technologies for differentiable programming of quantum computers. 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 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. 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 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. 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. 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
is an open source project coordinated by the Eclipse Foundation 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.A project developed by Microsoft 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, and run on quantum computers from Quantinuum, IonQ, and Pasqal.Strawberry Fields
An open-source Python library developed by Xanadu Quantum Technologies for designing, simulating, and optimizing continuous variable 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 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.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. 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. It offers built-in visualization and interoperability with external platforms, including conversion to Qiskit and Amazon Braket formats and the ability to send queries to quantum processing units via service connections.