Contents
Languages, libraries & IRs
Functional & higher-order
- Qunity (OCaml) - A unified functional language that expresses classical and quantum computation in one consistent syntax, with reversible semantics that treat quantum control flow as a first-class construct.
- Quipper (Haskell) - A scalable, higher-order functional quantum language embedded in Haskell, designed to describe large quantum circuits under the classical-control (QRAM) model.
- QWire (Coq) - A minimal, formally verified core language for quantum circuits ("choir") that interfaces with an arbitrary classical host language following the QRAM model.
- QML (Functional) - A functional quantum language whose design is guided by its categorical semantics, integrating reversible and irreversible computation via strict linear logic.
- qGCL - A quantum extension of Dijkstra's Guarded Command Language introducing quantum alternation and quantum choice to support the superposition of programs.
Procedural & imperative
- Silq (D) - A high-level quantum language that automatically and safely uncomputes temporary values, letting programs implicitly drop intermediate results as in classical code for shorter, more intuitive quantum programs.
- Twist (OCaml) - A quantum language whose type system tracks purity and entanglement, letting programmers state and statically verify assumptions about which qubits are entangled.
- Tower (OCaml) - A language for building pointer-based data structures that live in quantum superposition, letting quantum algorithms use familiar structures such as linked lists and trees.
- Scaffold (C++) - A C-like quantum programming language compiled by the ScaffCC toolchain, aimed at expressing and analyzing large-scale quantum programs.
- Q# (C#) - Microsoft's high-level, hardware-agnostic domain-specific language for scalable quantum programming.
- QCL - One of the first quantum programming languages: a procedural, C-like language bringing classical concepts (memory management, flow control) to quantum computing.
- isQ - An imperative quantum programming language and integrated software stack that compiles to QIR, OpenQASM, and other intermediate representations.
- RQC++ - A notation for recursively defined quantum circuits and quantum recursive programs.
Embedded & high-level
- Qrisp (Python) - A high-level Python framework that raises quantum programming above the circuit level with managed QuantumVariables and automatic qubit allocation.
- Qwerty (Python) - A high-level, basis-oriented quantum language embedded in Python that abstracts away individual qubits and gates in favor of reasoning about bases and functions.
- Guppy (Python) - Quantinuum's Python-embedded DSL for high-level hybrid quantum-classical programs with rich, Pythonic control flow.
- Qiwi (Python) - A beginner-friendly quantum language offering high-level abstractions with dead-qubit elimination and dynamically sized data types.
- Qurts (Rust) - A high-level extension of Rust that leverages Rust's ownership and type systems to provide automatic uncomputation and quantum control.
Circuit libraries
- Qiskit (Python) - IBM's open-source SDK for composing, simulating, and running quantum circuits.
- Cirq (Python) - Google's Python framework for writing, optimizing, and running circuits on NISQ devices.
- t|ket〉 (Python) - Quantinuum's retargetable optimizing compiler and
pytkettoolkit for NISQ devices. - ProjectQ (Python) - An open-source framework that compiles high-level quantum programs to a range of simulator and hardware backends.
- pyQuil (Python) - Rigetti's Python library for writing and running programs in the Quil instruction language.
Intermediate representations
- OpenQASM (Python) - An imperative quantum assembly language and intermediate representation for describing quantum circuits.
- QIR (LLVM) - The Quantum Intermediate Representation, an LLVM-based specification for representing quantum programs across toolchains.
- SQIR (Coq) - A small quantum intermediate representation embedded in Coq for formally verified compilation and program proofs.
- Quantum Control Machine (OCaml) - An instruction set architecture whose conditional jump is restricted to the conditions under which control flow can be correctly realized in superposition.
Quantum optimal & hardware control
The qosf Awesome Quantum Software list uses "quantum control" in its other sense — optimizing and calibrating the physical pulses that steer qubits. Those tools are included here for completeness.
Python
- C3 - Open-loop, closed-loop and automated Control, Calibration and Characterization of quantum devices.
- Krotov - Python implementation of Krotov's method for quantum optimal control.
- Qibo - Platform-agnostic quantum hardware control module with drivers for multiple instruments.
- Quanlse - Quantum control solutions via a cloud SDK, developed by Baidu Quantum.
Literature
Surveys & reviews
- A Brief Survey of Quantum Programming Languages - Selinger (2004).
- Quantum programming languages: survey and bibliography - Gay (2006).
- A Survey of Quantum Programming Languages: History, Methods, and Tools - Sofge (2007).
- Quantum programming languages - Heim et al., Nature Reviews Physics (2020).
- Quantum Compilation Process: A Survey - Cardama et al. (2025).
- Quantum Programming: Languages and Frameworks - Nalwade and Upoma (2026).
Foundations & models of computation
- Logical Reversibility of Computation - Bennett (1973).
- Quantum theory, the Church-Turing principle and the universal quantum computer - Deutsch (1985).
- Quantum computational networks - Deutsch (1989).
- Rapid solution of problems by quantum computation - Deutsch and Jozsa (1992).
- Quantum Complexity Theory - Bernstein and Vazirani (1993).
- Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer - Shor (1996).
- A fast quantum mechanical algorithm for database search - Grover (1996).
- Conventions for Quantum Pseudocode - Knill (1996).
- The Halting Problem for Quantum Computers - Linden (1998).
- Construction of a universal quantum computer - Lagana et al. (2009).
- Principles of a reversible programming language - Yokoyama et al. (2008).
- A Reversible Processor Architecture and Its Reversible Logic Design - Thomsen et al. (2012).
- Quantum Random Access Stored-Program Machines - Wang and Ying (2023).
Quantum control flow
- Quantum Loop Programs - Ying and Feng (2007).
- Defining Quantum Control Flow - Ying et al. (2012).
- Alternation in Quantum Programming: From Superposition of Data to Superposition of Programs - Ying et al. (2014).
- Quantum Recursion and Second Quantisation - Ying (2014).
- Quantum Alternation: Prospects and Problems - Bădescu and Panangaden (2015).
- Quantum conditional operations - Bislo et al. (2016).
- From Symmetric Pattern-Matching to Quantum Control - Sabry et al. (2018).
- Weakly measured while loops: peeking at quantum states - Andrés-Martínez et al. (2022).
- The T-Complexity Costs of Error Correction for Control Flow in Quantum Computation - Yuan and Carbin (2024).
- Quantum Control Machine - Yuan et al. (2024).
- Verification of Recursively Defined Quantum Circuits - Ying and Zhang (2024).
- A Case for Synthesis of Recursive Quantum Unitary Programs - Deng et al. (2024).
- Towards a Hierarchical Quantum Circuit Language - Schober and Wesley (2025).
- Resource-Aware Quantum Programming with General Recursion and Quantum Control - Chardonnet et al. (2025).
- Compositional Quantum Control Flow with Efficient Compilation in Qunity - Mints et al. (2025).
- Quantum Register Machine: Efficient Implementation of Quantum Recursive Programs - Zhang and Ying (2025).
- Laws of Quantum Programming - Ying et al. (2025).
- Quantum Control and General Recursion beyond the Unitary Case - Barsse et al. (2026).
- Quantum Circuits Are Just a Phase - Heunen et al. (2026).
Semantics & type systems
- Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms - Maymin (1997).
- A Lambda Calculus for Quantum Computation - van Tonder (2003).
- Towards a quantum programming language - Selinger (2004).
- A functional quantum programming language - Altenkirch and Grattage (2005).
- Classical Concepts in Quantum Programming - Ömer (2005).
- Realizability in the Unitary Sphere - Díaz-Caro et al. (2019).
- Semantics of quantum programming languages: Classical control, quantum control - Valiron (2022).
- Foundational Abstractions for Quantum Programming - Yuan, PhD Thesis, MIT (2025).
Languages, frameworks & compilers
- Scaffold: Quantum Programming Language - Abhari et al. (2012).
- Quipper: a scalable quantum programming language - Green et al. (2013).
- ScaffCC: a framework for compilation and analysis of quantum computing programs - JavadiAbhari et al. (2014).
- Programming the quantum future - Valiron et al. (2015).
- Practical Modern Quantum Programming - McNally (2015). Introduces Cavy and region-inference-based ancilla management.
- QWIRE: a core language for quantum circuits - Paykin et al. (2017).
- ProjectQ: An Open Source Software Framework for Quantum Computing - Steiger et al. (2018).
- Q#: Enabling Scalable Quantum Computing and Development with a High-level DSL - Svore et al. (2018).
- Silq: a high-level quantum language with safe uncomputation and intuitive semantics - Bichsel et al. (2020).
- t|ket〉: A Retargetable Compiler for NISQ Devices - Sivarajah et al. (2021).
- Qiwi: A Beginner Friendly Quantum Language - Pal and Ghosh (2022).
- Tower: data structures in Quantum superposition - Yuan and Carbin (2022).
- Twist: sound reasoning for purity and entanglement in Quantum programs - Yuan et al. (2022).
- isQ: An Integrated Software Stack for Quantum Programming - Guo et al. (2023).
- Qunity: A Unified Language for Quantum and Classical Computing - Voichick et al. (2023).
- Quantum computing with Qiskit - Javadi-Abhari et al. (2024).
- Qrisp: A Framework for Compilable High-Level Programming of Gate-Based Quantum Computers - Seidel et al. (2024).
- Qwerty: A Basis-Oriented Quantum Programming Language - Adams et al. (2025).
- Asdf: A Compiler for Qwerty, a Basis-Oriented Quantum Programming Language - Adams et al. (2025).
- I Know a Guy Who Knows a Guy: Inlining Indirect Calls in the Qwerty Compiler - Barara (2025).
- GUPPY: Pythonic Quantum-Classical Programming - Koch et al. (2025).
- Qurts: Automatic Quantum Uncomputation by Affine Types with Lifetime - Hirata and Heunen (2025).
- Integrating Quantum Software Tools with(in) MLIR - Hopf et al. (2026).
Uncomputation
- Unqomp: synthesizing uncomputation in Quantum circuits - Paradis et al. (2021).
- Reqomp: Space-constrained Uncomputation for Quantum Circuits - Paradis et al. (2024).
- Qurts: Automatic Quantum Uncomputation by Affine Types with Lifetime - Hirata and Heunen (2025).
Verification & debugging
- Statistical Assertions for Validating Patterns and Finding Bugs in Quantum Programs - Huang and Martonosi (2019).
- QDB: From Quantum Algorithms Towards Correct Quantum Programs - Huang and Martonosi (2019).