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

INFORMACIONNYE TEHNOLOGII

A QSimulator Quantum Programming System

K. A. Stepanenko, O. A. Shorina

Published Nov 8, 2024• 0 citations
Publisher

Abstract

In this paper the authors propose their own QSimulator quantum programming system, which is a software tool for deve­loping and debugging quantum algorithms in a high-level C++ language. The basic structure of the presented system is de­scribed, including quantum algorithms and quantum operations, available to the programmer. The components of the system and their fundamental basis are briefly outlined. This system emulates the behaviour of a quantum coprocessor in a standard computational basis and thus can be used for debugging and programming quantum algorithms in the language of quantum circuits. The system proposed by the authors also implements the Grover search algorithm and the Durr-Hoyer minimization algorithm based on it. Many tasks can be formulated in terms of the search task. In particular, the SAT problem. In this article, we also propose a variant of constructing an oracle in the form of a quantum circuit for the SAT problem, which can be integrated into the Grover algorithm implemented in the presented system. Automatic oracle generation for the SAT task will help save time in developing quantum algorithms related to this task when working with our system.

DOI
10.17587/it.30.584-594

Related papers

How to utilize a Grover search in general programming

Shigeru Yamashita

It is widely believed that quantum computers (if realized) will be more powerful than today’s computers from the viewpoint of computational complexity . However, it is not obvious how to utilize quantum computers in practical situations. For practical purposes, a Grover search may be one of the most promising quantum algorithms known so far. Thus, in this paper, we propose an efficient framework where we can use Grover search for general programming. Our framework has the following steps. (1) A programmer writes a program by using standard C++ programming language. (2) Some if expressions within for loops in the C++ source code are chosen as candidates to be performed as a Grover search on a quantum computer. (3) The framework automatically generates a corresponding quantum circuit for each Grover search chosen in (2). Unlike the existing quantum circuit design methods, we can treat large problems in our quantum circuit design. (4) By evaluating the number of primitive quantum gates in the quantum circuit generated in (3), the framework determines whether the processing time of the quantum circuit is faster than the processing time of the corresponding if expression on a classical computer. If the framework determines that the quantum circuit is faster, it generates some interface source codes for a classical computer. Thus, in our framework, a programmer can use a Grover search with almost no effort.

Laser Physics•Apr 1, 2006•1 citation

Engineering the development of quantum programs: Application to the Boolean satisfiability problem

Diego Alonso, Pedro Sánchez, Francisco Sánchez-Rubio

The development of quantum programs is becoming a reality due to the rapid advancement of quantum computing. Over the past few years, a multitude of hardware platforms, algorithms, and programming languages have emerged to support this paradigm. By the very nature of Quantum Mechanics principles, there is an enormous change of philosophy when building quantum programs, which operate in a probabilistic space, unlike the deterministic behaviour shown by classical programming languages. These conceptual differences can be overcome by using techniques and tools of Software Engineering. In this paper, we apply Model-Driven Engineering techniques in a systematic way to ease the generation of quantum programs and we apply it to solve the satisfiability problem, very important in many engineering domains like verification of discrete systems and test of integrated circuits. To that aim, we contribute with a metamodel for representing quantum circuits and a model-to-text transformation to generate working IBM Qiskit code. This model-driven infrastructure is employed to automatically generate quantum programs from SAT equations through a model-to-model transformation that embeds Grover’s algorithm. Besides, we provide formulas for calculating the number of required quantum elements from SAT equations, crucial in the current context of limited quantum resources. The interoperability with other tools and the extensibility to target additional quantum platforms is guaranteed thanks to the use of a model-based toolchain. We cover several usage scenarios to validate the approach, providing exemplary SAT equations, the generated Qiskit code and the results of executing this code in IBM Quantum infrastructure.

Advances in Engineering Software•Aug 11, 2022•21 citations

Symbolic Quantum Programming for Supporting Applications of Quantum Computing Technologies

Jarosław Adam Miszczak

The goal of this paper is to deliver the overview of the current state of the art, provide experience report on developing quantum software tools, and outline the perspective for developing quantum programming tools supporting symbolic programming for the needs of quantum computing technologies. The main focus of this paper is on quantum computing technologies, as they can in the most direct way benefit from developing tools enabling the symbolic manipulation of quantum circuits and providing software tools for creating, optimizing, and testing quantum programs. We deliver a short survey of the most popular approaches in the field of quantum software development, pointing their strengths and weaknesses. This helps to formulate a list of desirable characteristics which should be included in quantum computing frameworks. Next, we describe a software architecture and its preliminary implementation supporting the development of quantum programs using symbolic approach, encouraging the functional programming paradigm, and, at the same, time enabling the integration with high-performance and cloud computing. The described software consists of several packages developed to address different needs, but nevertheless sharing common design concepts. We also outline how the presented approach could be used in tasks in quantum software engineering: quantum software testing and quantum circuit construction.

arXiv:2302.09401•International Conference on Art, Science, and Engineering of Programming (<Programming>)•Mar 13, 2023•1 citation

The architecture of a quantum programming environment

Shusen Liu

This thesis presents the architecture of quantum programming environment, called QSI, along with its related modules and several quantum experiments. The environment is based on one specific quantum language, namely quantum while-language. Some partial experimental results are also presented within QSI. The first part relates to the architecture, the designing and the implementation of quantum programming environment which provides a new, powerful and flexible environment for developing and implementing quantum programs. First, we study the possible structure of the programming environment which supports a measurement-based case statement and a measurement-based while-loop. These two program constructs are extremely convenient for describing large-scale quantum algorithms, such as quantum random walk-based algorithms. We also define a new assembly language called f-QASM (Quantum Assembly Language with feedback) as an interactive command set. The assembly language is compatible with other low-level instruction sets and can be used to directly drive quantum hardware. Moreover, the simulation of syntax of quantum program and the behaviours within the architecture on the classical computer are discussed. Finally, we consider the work-flow which contains the decomposition of unitary matrix to achieve the goal that executing on Noisy Intermediate-Scale Quantum Computer. The second part concerns the modules based on quantum programming environment: termination analysis module, detective separable unitary module and quantum control module. Along with the architecture, we bring an essential module - termination analysis module for the loop structure. It can analyze sub-bodies of quantum program and suggest the critical termination information. In addition, we improve the Jordan decomposition step in the original algorithm which consumes extended period for analyzing. This improvement also makes the module more robust on executing. A fast permutation algorithm module clarifies the re-ordering algorithm in case of qubits system. It regenerates the program (unitary operator) which is not in pre-ordered sequence. In the detective separable unitary module, we prove sufficient conditions for separable unitary and its approximate scenario. The result shows there does not exist a universal algorithm for potential parallel executing quantum programs without communications (classical or quantum communications). However, in approximate, there exists a scheme for parallel computing without the help of communication. In this part, two examples for parallel computing are given. Last, in quantum control module, an algorithm is suggested towards automatically generating quantum circuits for quantum case-statement. We believe these analysis modules can help the compiler to optimize the implementation of quantum algorithms. The third part is devoted to quantum experiment. First, we focus several experiments which can be operated directly by QSI : Qloop, BB84 protocol and Grover search algorithm. After that, with the help of IBM’s QISKit,…

•Jan 1, 2018•0 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

Searching a quantum database with Grover's search algorithm

Ben Kain

The development of programming languages for quantum computing has increased rapidly over the last few years, making it practical for a hands-on approach in teaching quantum computation. In this paper, I introduce the standard textbook example of searching for one item out of four using Grover's search algorithm and extend it by including a quantum database. In addition to explaining how to include a quantum database using a quantum circuit model, I give a complete program implementing the algorithm written in the quantum computing language Qiskit from IBM. If presented in the classroom, this extension of Grover's search algorithm alleviates some unsatisfying aspects of the standard textbook example. If given as an exercise to students, it allows them to extend the standard example and provides experience in developing quantum algorithms. I also outline searching for one (or more) items out of eight with a quantum database, which could be used for student projects.

American Journal of Physics•May 21, 2021•14 citations
In this paper the authors propose their own QSimulator quantum programming system, which is a software tool for deve­loping and debugging quantum algorithms in a high-level C++ language. The basic structure of the presented system is de­scribed, including quantum algorithms and quantum operations, available to the programmer. The components of the system and their fundamental basis are briefly outlined. This system emulates the behaviour of a quantum coprocessor in a standard computational basis and thus can be used for debugging and programming quantum algorithms in the language of quantum circuits. The system proposed by the authors also implements the Grover search algorithm and the Durr-Hoyer minimization algorithm based on it. Many tasks can be formulated in terms of the search task. In particular, the SAT problem. In this article, we also propose a variant of constructing an oracle in the form of a quantum circuit for the SAT problem, which can be integrated into the Grover algorithm implemented in the presented system. Automatic oracle generation for the SAT task will help save time in developing quantum algorithms related to this task when working with our system.
It is widely believed that quantum computers (if realized) will be more powerful than today’s computers from the viewpoint of computational complexity . However, it is not obvious how to utilize quantum computers in practical situations. For practical purposes, a Grover search may be one of the most promising quantum algorithms known so far. Thus, in this paper, we propose an efficient framework where we can use Grover search for general programming. Our framework has the following steps. (1) A programmer writes a program by using standard C++ programming language. (2) Some if expressions within for loops in the C++ source code are chosen as candidates to be performed as a Grover search on a quantum computer. (3) The framework automatically generates a corresponding quantum circuit for each Grover search chosen in (2). Unlike the existing quantum circuit design methods, we can treat large problems in our quantum circuit design. (4) By evaluating the number of primitive quantum gates in the quantum circuit generated in (3), the framework determines whether the processing time of the quantum circuit is faster than the processing time of the corresponding if expression on a classical computer. If the framework determines that the quantum circuit is faster, it generates some interface source codes for a classical computer. Thus, in our framework, a programmer can use a Grover search with almost no effort.
The development of quantum programs is becoming a reality due to the rapid advancement of quantum computing. Over the past few years, a multitude of hardware platforms, algorithms, and programming languages have emerged to support this paradigm. By the very nature of Quantum Mechanics principles, there is an enormous change of philosophy when building quantum programs, which operate in a probabilistic space, unlike the deterministic behaviour shown by classical programming languages. These conceptual differences can be overcome by using techniques and tools of Software Engineering. In this paper, we apply Model-Driven Engineering techniques in a systematic way to ease the generation of quantum programs and we apply it to solve the satisfiability problem, very important in many engineering domains like verification of discrete systems and test of integrated circuits. To that aim, we contribute with a metamodel for representing quantum circuits and a model-to-text transformation to generate working IBM Qiskit code. This model-driven infrastructure is employed to automatically generate quantum programs from SAT equations through a model-to-model transformation that embeds Grover’s algorithm. Besides, we provide formulas for calculating the number of required quantum elements from SAT equations, crucial in the current context of limited quantum resources. The interoperability with other tools and the extensibility to target additional quantum platforms is guaranteed thanks to the use of a model-based toolchain. We cover several usage scenarios to validate the approach, providing exemplary SAT equations, the generated Qiskit code and the results of executing this code in IBM Quantum infrastructure.
The goal of this paper is to deliver the overview of the current state of the art, provide experience report on developing quantum software tools, and outline the perspective for developing quantum programming tools supporting symbolic programming for the needs of quantum computing technologies. The main focus of this paper is on quantum computing technologies, as they can in the most direct way benefit from developing tools enabling the symbolic manipulation of quantum circuits and providing software tools for creating, optimizing, and testing quantum programs. We deliver a short survey of the most popular approaches in the field of quantum software development, pointing their strengths and weaknesses. This helps to formulate a list of desirable characteristics which should be included in quantum computing frameworks. Next, we describe a software architecture and its preliminary implementation supporting the development of quantum programs using symbolic approach, encouraging the functional programming paradigm, and, at the same, time enabling the integration with high-performance and cloud computing. The described software consists of several packages developed to address different needs, but nevertheless sharing common design concepts. We also outline how the presented approach could be used in tasks in quantum software engineering: quantum software testing and quantum circuit construction.
This thesis presents the architecture of quantum programming environment, called QSI, along with its related modules and several quantum experiments. The environment is based on one specific quantum language, namely quantum while-language. Some partial experimental results are also presented within QSI. The first part relates to the architecture, the designing and the implementation of quantum programming environment which provides a new, powerful and flexible environment for developing and implementing quantum programs. First, we study the possible structure of the programming environment which supports a measurement-based case statement and a measurement-based while-loop. These two program constructs are extremely convenient for describing large-scale quantum algorithms, such as quantum random walk-based algorithms. We also define a new assembly language called f-QASM (Quantum Assembly Language with feedback) as an interactive command set. The assembly language is compatible with other low-level instruction sets and can be used to directly drive quantum hardware. Moreover, the simulation of syntax of quantum program and the behaviours within the architecture on the classical computer are discussed. Finally, we consider the work-flow which contains the decomposition of unitary matrix to achieve the goal that executing on Noisy Intermediate-Scale Quantum Computer. The second part concerns the modules based on quantum programming environment: termination analysis module, detective separable unitary module and quantum control module. Along with the architecture, we bring an essential module - termination analysis module for the loop structure. It can analyze sub-bodies of quantum program and suggest the critical termination information. In addition, we improve the Jordan decomposition step in the original algorithm which consumes extended period for analyzing. This improvement also makes the module more robust on executing. A fast permutation algorithm module clarifies the re-ordering algorithm in case of qubits system. It regenerates the program (unitary operator) which is not in pre-ordered sequence. In the detective separable unitary module, we prove sufficient conditions for separable unitary and its approximate scenario. The result shows there does not exist a universal algorithm for potential parallel executing quantum programs without communications (classical or quantum communications). However, in approximate, there exists a scheme for parallel computing without the help of communication. In this part, two examples for parallel computing are given. Last, in quantum control module, an algorithm is suggested towards automatically generating quantum circuits for quantum case-statement. We believe these analysis modules can help the compiler to optimize the implementation of quantum algorithms. The third part is devoted to quantum experiment. First, we focus several experiments which can be operated directly by QSI : Qloop, BB84 protocol and Grover search algorithm. After that, with the help of IBM’s QISKit,…
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.
The development of programming languages for quantum computing has increased rapidly over the last few years, making it practical for a hands-on approach in teaching quantum computation. In this paper, I introduce the standard textbook example of searching for one item out of four using Grover's search algorithm and extend it by including a quantum database. In addition to explaining how to include a quantum database using a quantum circuit model, I give a complete program implementing the algorithm written in the quantum computing language Qiskit from IBM. If presented in the classroom, this extension of Grover's search algorithm alleviates some unsatisfying aspects of the standard textbook example. If given as an exercise to students, it allows them to extend the standard example and provides experience in developing quantum algorithms. I also outline searching for one (or more) items out of eight with a quantum database, which could be used for student projects.