Quantum computers use quantum mechanical effects such as quantum entanglement and quantum superposition. If one day the quantum computer becomes a commercially available product, then it is very important to have a transcompiler that will convert the source code of programming languages for classical computers into the source code of programming languages for quantum computers because it will speed up the translation process of existing applications and ensure that developers can write programs for quantum computers using programming languages for classical computers. This research proposes, implements and tests an approach for the conversion of the source code of programming languages for classical computers into the source code of programming languages for quantum computers. The accuracy of the generated source code for quantum computers and the quantum cost of quantum circuits which are generated using QR, CS algorithms and algorithm for direct translation of reversible circuit into quantum circuit will be measured on a data set which represents programmes on classical computers.
Quantum computers use quantum mechanical effects such as quantum entanglement and quantum superposition. If one day the quantum computer becomes a commercially available product, then it is very important to have a transcompiler that will convert the source code of programming languages for classical computers into the source code of programming languages for quantum computers because it will speed up the translation process of existing applications and ensure that developers can write programs for quantum computers using programming languages for classical computers. This research proposes, implements and tests an approach for the conversion of the source code of programming languages for classical computers into the source code of programming languages for quantum computers. The accuracy of the generated source code for quantum computers and the quantum cost of quantum circuits which are generated using QR, CS algorithms and algorithm for direct translation of reversible circuit into quantum circuit will be measured on a data set which represents programmes on classical computers.
Basic principles of quantum computer ensure more computing power than the principles of classical computers. Quantum computers use quantum mechanical effects such as entanglement and superposition to speed up computing processes compared to classical computers. If the quantum computers one day becomes a commercially available product, then it is very important to have a converter that will convert the source code of programming languages for classical computers into source code of programming languages for quantum computers because it will speed up the translation process and ensure that developers of classical computers can develop programs for quantum computer using programming languages for classical computers. In this paper, the basic approach to automatic conversion of the source code for classical computer into a source code of quantum computer is introduced.
Abstract Programming a quantum computer can be thought of as having two steps. The first has been the subject of the past several chapters: leveraging number theory, superposition, entanglement, gates, and measurements to develop an algorithm to solve a problem. Classically, computer programmers do not work at the level of gates and there is, of course, no such thing in their world as entanglement or superposition. They work at the second level, writing code to implement the algorithm. There are several universal languages available for classical programming. This chapter provides resources for programming quantum computers using these standard languages.
A general quantum simulation language on a classical computer provides the opportunity to compare an experiential result from the development of quantum computers with mathematical theory. The intention of this research is to develop a program language that is able to make simulations of all quantum algorithms in same framework. This study examines the simulation of quantum algorithms on a classical computer with a symbolic programming language. We use the language Mathematica to make simulations of well-known quantum algorithms. The program code implemented on a classical computer will be a straight connection between the mathematical formulation of quantum mechanics and computational methods. This gives us an uncomplicated and clear language for the implementations of algorithms. The computational language includes essential formulations such as quantum state, superposition and quantum operator. This symbolic programming language provides a universal framework for examining the existing as well as future quantum algorithms. This study contributes with an implementation of a quantum algorithm in a program code where the substance is applicable in other simulations of quantum algorithms.
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.
Quantum computing promises remarkable computational power with minimal energy consumption. However, the complexity of developing quantum circuits and codes hinders fully exploiting this potential. The study proposes an approach based on the automatic quantum circuit and code generation based on deep learning. It enables the resynthesis of existing circuits and the creation of new ones from undefined inputs. The system transforms inputs into reversible truth tables, generates a quantum unitary matrix, corrects errors, optimizes it, and converts it into a quantum code or circuit. This approach has been implemented on circuits and codes that involve up to five variables. Rigorous evaluations include both the Deep Neural Network and the overall approach. Although the DNN output does not guarantee absolute correctness, our approach compensates with supplementary processes, ensuring the precise generation of quantum codes and circuits. Comprehensive testing confirmed the approach's effectiveness in overcoming challenges in quantum circuit and code development. • Benefiting from the low energy and high computing power potential offered by quantum computing. • Developing quantum circuits and algorithms is a challenging task. • The number of competent people in the field who can develop quantum circuits and algorithms is low. • Classical algorithms do not work on quantum computers. • Insufficient number of quantum circuits and algorithms running on quantum computers.
Quantum computing is a new era in the field of computation which makes use of quantum mechanical phenomena such as superposition, entanglement, and quantum annealing. It is a very promising field and has given a new paradigm to efficiently solve complex computational problems. However, programming quantum computers is a difficult task. In this research, we have developed a system called AutoQP which can write quantum computer code through genetic programming on a classical computer provided the input and expected output of a quantum program. We have tested AutoQP on two different quantum algorithms: Deutsch Problem and the Bernstein-Vazirani problem. In our experimental analysis, AutoQP was able to generate quantum programs for solving both problems. The code generated by AutoQP was successfully tested on actual IBM quantum computers as well. It is expected that the proposed system can be very useful for the general development of quantum programs based on the IBM gate model. The source code for the proposed system is available at the URL: https://github.com/usamaahsan93/AutoQP.