This paper is devoted to the development of quantum computing programming languages with simplified syntax and extended compilation. The key principles of creating an intuitive and functional syntax that lowers the entry barrier for programmers and specialists from related fields are considered. Simplification is achieved through high-level abstractions, declarative style, and automation of complex operations, such as qubit management and construction of quantum circuits. Extended compilation plays a central role in program optimization, error minimization, and adaptation to various quantum processor architectures. The integration of quantum and classical computing through hybrid approaches is also discussed. These innovations create the basis for the popularization of quantum technologies and their practical application in scientific and industrial problems.
This paper is devoted to the development of quantum computing programming languages with simplified syntax and extended compilation. The key principles of creating an intuitive and functional syntax that lowers the entry barrier for programmers and specialists from related fields are considered. Simplification is achieved through high-level abstractions, declarative style, and automation of complex operations, such as qubit management and construction of quantum circuits. Extended compilation plays a central role in program optimization, error minimization, and adaptation to various quantum processor architectures. The integration of quantum and classical computing through hybrid approaches is also discussed. These innovations create the basis for the popularization of quantum technologies and their practical application in scientific and industrial problems.
Abstract Quantum computing offers transformative capabilities by exploiting quantum mechanical principles to solve problems that are intractable for classical systems, particularly in areas like cryptography, optimization, and data analysis. However, most current quantum programming languages operate at a low level, requiring in-depth expertise in quantum mechanics and circuit theory, which presents a barrier to wider adoption. In this work, we introduce Qutes, a high-level quantum programming language that simplifies the development of quantum algorithms while preserving the flexibility needed for advanced applications. Qutes abstracts low-level quantum operations through intuitive syntax and high-level constructs, enabling developers to express complex algorithms without detailed circuit knowledge. Built atop Qiskit, Qutes transpiles seamlessly into executable code, ensuring compatibility with real quantum hardware. We present the architecture, language design, and hybrid classical-quantum integration of Qutes, and demonstrate its use through implementations of canonical quantum algorithms. Our results highlight Qutes’ potential to democratize quantum programming by lowering the entry threshold and accelerating prototyping for researchers and developers alike.
Quantum computing leverages the principles of quantum mechanics to perform computations far beyond the capabilities of classical systems, particularly in fields such as cryptography and optimization. However, current quantum programming languages often require low-level implementation, posing significant barriers for many developers due to their steep learning curve and limited abstraction. In response, we introduce Qutes, a high-level quantum programming language designed to simplify quantum algorithm development while maintaining the flexibility required for advanced applications. By abstracting complex quantum operations and allowing intuitive expressions through high-level constructs, Qutes enables users to write efficient quantum programs without extensive knowledge of quantum mechanics or circuit design. Built upon Qiskit, Qutes translates its syntax directly into executable quantum code, facilitating seamless integration with quantum hardware. This paper provides an overview of the language's architecture, core functionalities, and its ability to unify classical and quantum operations within a single framework. Additionally, we demonstrate Qutes' application in key quantum algorithms, showcasing its potential to make quantum programming more accessible and practical for a wider range of developers and researchers.
This paper presents a novel theory for quantum computing program compilation and optimization. The core of this theory lies in translating high-level quantum programs into efficient quantum circuit implementations. This is achieved through the utilization of an abstract syntax tree (AST) derived from the quantum program. A compilation algorithm is designed to traverse the AST and generate corresponding quantum circuits, incorporating optimization strategies throughout the process. The work addresses a significant challenge within quantum computing – the complexity of program compilation – and proposes a new theoretical framework to facilitate the development of more practical and performant quantum algorithms. The theoretical framework outlined here provides a foundation for future research and development in quantum compiler design.
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.
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.
Abstract Quantum computers promise to transform our notions of computation by offering a completely new paradigm. To achieve scalable quantum computation, optimizing compilers and a corresponding software design flow will be essential. We present a software architecture for compiling quantum programs from a high-level language program to hardware-specific instructions. We describe the necessary layers of abstraction and their differences and similarities to classical layers of a computer-aided design flow. For each layer of the stack, we discuss the underlying methods for compilation and optimization. Our software methodology facilitates more rapid innovation among quantum algorithm designers, quantum hardware engineers, and experimentalists. It enables scalable compilation of complex quantum algorithms and can be targeted to any specific quantum hardware implementation.