Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Log inSign up
Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Blog
Job Board
Q3AS

© 2026 Aqora Quantum S.A.S.

TermsPrivacyLegal Notice

Cambridge University Press eBooks

Quantum Languages, Compilers, and Tools

Robert Hundt

Published Feb 28, 2022• 0 citations
Publisher

Abstract

At this point, we understand the principles of quantum computing, the important foundational algorithms, and the basics of quantum error correction. We have developed a compact infrastructure for exploration and experimentation, but it is at the gate level. Higher levels of abstraction are needed to scale to much larger programs. The chapter discusses several quantum programming languages, including their specific tooling, such as hierarchical program representations or entanglement analysis. General challenges for compilation are discussed, as well as compiler optimization techniques. The chapter finishes with transpilation, a powerful compilation-based technique. It allows seamless porting of circuits to other frameworks, enabling the use of their advanced error models or distributed simulation capabilities. The underlying (simple) compiler technology would further enable implementation of several of the features found in programming languages, such as automatic uncomputation, entanglement analysis, and conditional blocks.

DOI
10.1017/9781009099974.010

Related papers

Quantum Languages, Compilers, and Tools

Robert Hundt

We have introduced a compact infrastructure for exploration and experimentation, but all at the level of individual gates. Higher levels of abstraction are needed to scale to larger programs. The chapter discusses several quantum programming languages, including their specific tooling, such as hierarchical program representations or entanglement analysis. General challenges for compilation are discussed as well as compiler optimization techniques.

Cambridge University Press eBooks•Nov 20, 2025•0 citations

Simulation Infrastructure

Robert Hundt

This chapter lays out a more complete software framework, including a high-performance simulator. It discusses transpilation, a powerful compiler-based technique that allows seamless porting of circuits to other frameworks. The methodology further enables the implementation of key features found in quantum programming languages, such as automatic uncomputation or conditional blocks. An elegant sparse representation is also being introduced.

Cambridge University Press eBooks•Nov 20, 2025•0 citations

Quantum Computing for Programmers

Robert Hundt

This introduction to quantum computing from a classical programmer's perspective is meant for students and practitioners alike. Over 25 fundamental algorithms are explained with full mathematical derivations and classical code for simulation, using an open-source code base developed from the ground up in Python and C++. After presenting the basics of quantum computing, the author focuses on algorithms and the infrastructure to simulate them efficiently, beginning with quantum teleportation, superdense coding, and Deutsch-Jozsa. Coverage of advanced algorithms includes the quantum supremacy experiment, quantum Fourier transform, phase estimation, Shor's algorithm, Grover's algorithm with derivatives, quantum random walks, and the Solovay–Kitaev algorithm for gate approximation. Quantum simulation is explored with the variational quantum eigensolver, quantum approximate optimization, and the Max-Cut and Subset-Sum algorithms. The book also discusses issues around programmer productivity, quantum noise, error correction, and challenges for quantum programming languages, compilers, and tools, with a final section on compiler techniques for transpilation.

Cambridge University Press eBooks•Feb 28, 2022•5 citations

Program compilation for large-scale quantum computers

Giulia Meuli

Practical realizations of quantum computers are poised to deliver outstanding computational capabilities far beyond the reach of any classical supercomputer. While classical systems are reliably implemented using CMOS technology, the fabrication of quantum hardware has not yet reached a commercially viable level of maturity. Nowadays, many different technologies are being developed as competing candidates to build the first error-corrected quantum computer. Among the software resources required to operate such a system, quantum compilers translate a high-level description of a quantum algorithm into low-level, technology-dependent quantum instructions. Many quantum algorithms, including Shor's and Grover's algorithms, require to compute some classical logic functions on the quantum computer. The first part of this thesis deals with the problem of compiling quantum circuits that perform such classical Boolean functions, called oracles, into a fault-tolerant set of instructions. Oracle circuits often demand many resources in terms of the number of qubits and gates. The focus is on compiling quantum circuits starting from multi-level logic networks representing large Boolean functions while minimizing the resource footprint of the obtained quantum circuits. At the same time, the trade-off between memory resources and the number of operations typical of such a compilation process is explored. As part of the effort in reducing the resources required to perform a given quantum program, I also present some quantum circuit optimization techniques. The researched algorithms leverage data structures and techniques borrowed and adapted from classical logic synthesis, e.g., SAT solvers, LUT mapping, and multi-level logic networks. I implemented all the compilation algorithms presented in this thesis as part of open-source projects. In particular, I develop and maintain caterpillar---a C++ header-only library dedicated to the quantum compilation of oracles and quantum memory management. The second part of this thesis describes how to equip quantum programming language compilers with automatic accuracy management. Despite the availability of many of such languages, resource estimation of quantum algorithms does not yet support taking approximation errors into account. This general methodology is applicable to any programming language and I demonstrate its integration into the Q# compiler. The technique consists of providing language support to ease the accuracy-aware programming task. The user can define accuracy parameters that will be automatically optimized according to a constraint and a cost function directly generated from the source code. In the presented practical evaluations, the constraint function is the overall allowed accuracy, while the cost function is application-dependent and related to the number of gates. During the optimization process, such functions are evaluated hundreds of times. For this reason, we extract them as (near-)symbolic expressions, whose evaluation time does not depend on the quantum algorithm size. The algorithms and the methodologies presented in this thesis are part of a widespread effort of the research community to build a complete and efficient software stack to program and control the first practical universal quantum computer.

•Jan 1, 2020•1 citation

Basics of Quantum Computing

Ahcène Bounceur, Mohammad Ali A. Hammoudeh, Bamidele Adebisi +1 more

This chapter offers an introduction to the emerging domain of quantum programming. Quantum computing demands a paradigm shift from classical approaches. Traditional programming constructs are insufficient for exploiting the complete capabilities of quantum algorithms. Instead, quantum programming languages such as Qiskit, Quipper, and Q# provide frameworks for expressing quantum algorithms in a quantum-native manner. This chapter starts by examining the fundamental principles that establish the distinctive computational paradigm of quantum computing. Then, an introduction to fundamental quantum concepts, including superposition, entanglement, and quantum gates, is provided. It explains how quantum gates manipulate qubits, orchestrating complex quantum operations. Moreover, it explores quantum parallelism and interference, which underpin the unique computational power of quantum computers. Furthermore, the chapter explores the problems of quantum error correction and fault tolerance, which are essential for mitigating the effects of decoherence and noise in quantum systems. These techniques pave the way for scalable and reliable quantum computation. Overall, this chapter serves as a comprehensive primer on quantum computing principles and their implications for programming. By explaining the fundamentals of quantum mechanics and clarifying their role in computation, it provides a foundational understanding essential for navigating the emerging field of quantum computing.

CRC Press eBooks•Dec 9, 2024•0 citations

Quantum Compiling

Marco Maronese, Lorenzo Rocutto, Enrico Prati

Quantum compiling fills the gap between the computing layer of high-level quantum algorithms and the layer of physical qubits with their specific properties and constraints. Quantum compiling is a hybrid between the general-purpose compilers of computers, transforming high-level language to assembly language and hardware synthesis by hardware description language, where functions are automatically synthesized into customized hardware. Here we review the quantum compiling stack of both gate model quantum computers and the adiabatic quantum computers, respectively. The former involves low level qubit control, quantum error correction, synthesis of short quantum circuits, transpiling, while the latter involves the virtualization of qubits by embedding of QUBO and HUBO problems on constrained graphs of physical qubits and both quantum error suppression and correction. Commercial initiatives and quantum compiling products are reviewed, including explicit programming examples.

•Dec 1, 2021•0 citations
At this point, we understand the principles of quantum computing, the important foundational algorithms, and the basics of quantum error correction. We have developed a compact infrastructure for exploration and experimentation, but it is at the gate level. Higher levels of abstraction are needed to scale to much larger programs. The chapter discusses several quantum programming languages, including their specific tooling, such as hierarchical program representations or entanglement analysis. General challenges for compilation are discussed, as well as compiler optimization techniques. The chapter finishes with transpilation, a powerful compilation-based technique. It allows seamless porting of circuits to other frameworks, enabling the use of their advanced error models or distributed simulation capabilities. The underlying (simple) compiler technology would further enable implementation of several of the features found in programming languages, such as automatic uncomputation, entanglement analysis, and conditional blocks.
This introduction to quantum computing from a classical programmer's perspective is meant for students and practitioners alike. Over 25 fundamental algorithms are explained with full mathematical derivations and classical code for simulation, using an open-source code base developed from the ground up in Python and C++. After presenting the basics of quantum computing, the author focuses on algorithms and the infrastructure to simulate them efficiently, beginning with quantum teleportation, superdense coding, and Deutsch-Jozsa. Coverage of advanced algorithms includes the quantum supremacy experiment, quantum Fourier transform, phase estimation, Shor's algorithm, Grover's algorithm with derivatives, quantum random walks, and the Solovay–Kitaev algorithm for gate approximation. Quantum simulation is explored with the variational quantum eigensolver, quantum approximate optimization, and the Max-Cut and Subset-Sum algorithms. The book also discusses issues around programmer productivity, quantum noise, error correction, and challenges for quantum programming languages, compilers, and tools, with a final section on compiler techniques for transpilation.
Practical realizations of quantum computers are poised to deliver outstanding computational capabilities far beyond the reach of any classical supercomputer. While classical systems are reliably implemented using CMOS technology, the fabrication of quantum hardware has not yet reached a commercially viable level of maturity. Nowadays, many different technologies are being developed as competing candidates to build the first error-corrected quantum computer. Among the software resources required to operate such a system, quantum compilers translate a high-level description of a quantum algorithm into low-level, technology-dependent quantum instructions. Many quantum algorithms, including Shor's and Grover's algorithms, require to compute some classical logic functions on the quantum computer. The first part of this thesis deals with the problem of compiling quantum circuits that perform such classical Boolean functions, called oracles, into a fault-tolerant set of instructions. Oracle circuits often demand many resources in terms of the number of qubits and gates. The focus is on compiling quantum circuits starting from multi-level logic networks representing large Boolean functions while minimizing the resource footprint of the obtained quantum circuits. At the same time, the trade-off between memory resources and the number of operations typical of such a compilation process is explored. As part of the effort in reducing the resources required to perform a given quantum program, I also present some quantum circuit optimization techniques. The researched algorithms leverage data structures and techniques borrowed and adapted from classical logic synthesis, e.g., SAT solvers, LUT mapping, and multi-level logic networks. I implemented all the compilation algorithms presented in this thesis as part of open-source projects. In particular, I develop and maintain caterpillar---a C++ header-only library dedicated to the quantum compilation of oracles and quantum memory management. The second part of this thesis describes how to equip quantum programming language compilers with automatic accuracy management. Despite the availability of many of such languages, resource estimation of quantum algorithms does not yet support taking approximation errors into account. This general methodology is applicable to any programming language and I demonstrate its integration into the Q# compiler. The technique consists of providing language support to ease the accuracy-aware programming task. The user can define accuracy parameters that will be automatically optimized according to a constraint and a cost function directly generated from the source code. In the presented practical evaluations, the constraint function is the overall allowed accuracy, while the cost function is application-dependent and related to the number of gates. During the optimization process, such functions are evaluated hundreds of times. For this reason, we extract them as (near-)symbolic expressions, whose evaluation time does not depend on the quantum algorithm size. The algorithms and the methodologies presented in this thesis are part of a widespread effort of the research community to build a complete and efficient software stack to program and control the first practical universal quantum computer.
This chapter offers an introduction to the emerging domain of quantum programming. Quantum computing demands a paradigm shift from classical approaches. Traditional programming constructs are insufficient for exploiting the complete capabilities of quantum algorithms. Instead, quantum programming languages such as Qiskit, Quipper, and Q# provide frameworks for expressing quantum algorithms in a quantum-native manner. This chapter starts by examining the fundamental principles that establish the distinctive computational paradigm of quantum computing. Then, an introduction to fundamental quantum concepts, including superposition, entanglement, and quantum gates, is provided. It explains how quantum gates manipulate qubits, orchestrating complex quantum operations. Moreover, it explores quantum parallelism and interference, which underpin the unique computational power of quantum computers. Furthermore, the chapter explores the problems of quantum error correction and fault tolerance, which are essential for mitigating the effects of decoherence and noise in quantum systems. These techniques pave the way for scalable and reliable quantum computation. Overall, this chapter serves as a comprehensive primer on quantum computing principles and their implications for programming. By explaining the fundamentals of quantum mechanics and clarifying their role in computation, it provides a foundational understanding essential for navigating the emerging field of quantum computing.
Quantum compiling fills the gap between the computing layer of high-level quantum algorithms and the layer of physical qubits with their specific properties and constraints. Quantum compiling is a hybrid between the general-purpose compilers of computers, transforming high-level language to assembly language and hardware synthesis by hardware description language, where functions are automatically synthesized into customized hardware. Here we review the quantum compiling stack of both gate model quantum computers and the adiabatic quantum computers, respectively. The former involves low level qubit control, quantum error correction, synthesis of short quantum circuits, transpiling, while the latter involves the virtualization of qubits by embedding of QUBO and HUBO problems on constrained graphs of physical qubits and both quantum error suppression and correction. Commercial initiatives and quantum compiling products are reviewed, including explicit programming examples.