Quantum Computing (QC) has emerged as a field of ever-increasing activity as it promises to revolutionize computation and enable the solution of computational problems that we (realistically) cannot solve with Classical Computing to date. However, existing quantum programming environments mostly require an in-depth understanding of the basic QC building blocks, that is, quantum states, superposition, entanglement and measurement as well as the changing of quantum states using basic quantum gates. The present state of quantum programming reminds us of how Classical Computing was about 70 years ago when computing machines such as the ENIAC required significant effort to program solely using very basic digital building blocks. Over the decades, though, increasingly higher-level abstractions have been created on top of the basic building blocks of Classical Computing and made computation much more accessible and wide-spread. In order to make Quantum Computing more accessible, we argue that Software Engineering for QC needs to embark on a similar journey and create abstractions that shield developers from the basic QC building blocks as much as possible so that they can focus their attention on solving problems and less on how to manipulate quantum states using quantum circuits. Based on our experience of developing a scalable quantum n-queens solver, this paper aims to formulate recommendations for raising the level of abstraction in Quantum Software Engineering.
Quantum Computing (QC) has emerged as a field of ever-increasing activity as it promises to revolutionize computation and enable the solution of computational problems that we (realistically) cannot solve with Classical Computing to date. However, existing quantum programming environments mostly require an in-depth understanding of the basic QC building blocks, that is, quantum states, superposition, entanglement and measurement as well as the changing of quantum states using basic quantum gates. The present state of quantum programming reminds us of how Classical Computing was about 70 years ago when computing machines such as the ENIAC required significant effort to program solely using very basic digital building blocks. Over the decades, though, increasingly higher-level abstractions have been created on top of the basic building blocks of Classical Computing and made computation much more accessible and wide-spread. In order to make Quantum Computing more accessible, we argue that Software Engineering for QC needs to embark on a similar journey and create abstractions that shield developers from the basic QC building blocks as much as possible so that they can focus their attention on solving problems and less on how to manipulate quantum states using quantum circuits. Based on our experience of developing a scalable quantum n-queens solver, this paper aims to formulate recommendations for raising the level of abstraction in Quantum Software Engineering.
Since the invention of Quantum Computing (QC) in the 1980s, substantial claims about QC’s ability to solve computational problems of unparalleled complexity have emerged. However, forty years later, no significant real-world QC applications exist. Indeed, the availability of small-scale noisy quantum computers is to blame. Still, simultaneously, the programming of quantum computers is too close to quantum hardware, requiring software engineers with specialized backgrounds to build QC applications and limiting the maximum exploitation of QC’s potential. Thus, there is a need for an abstract yet intuitive quantum-oriented paradigm (QOP) for building QC applications, similar to the object-oriented paradigm established in the 1960s for classical computers that laid the foundations of modern programming and modeling languages for classical computers. Unfortunately, such a QC paradigm doesn’t exist. Thus, we foresee the need to build a novel QOP based on which future quantum programming and modeling languages shall be developed. Such QOP shall enable users with diverse backgrounds (e.g., computer scientists, software engineers, and physicists) to build QC applications cost-effectively, intuitively, and independently of low-level quantum mechanics characteristics (e.g., superposition and entanglement). This paper discusses the emerging work of QOP and presents research directions that the software engineering and programming communities can follow to build a successful QOP.
Quantum programming languages provide necessary constructs to program quantum computers. To write such programs, one needs to understand the characteristics of quantum computers such as superposition and entanglement, which are novel as compared to programming with classical computers. Understanding these characteristics requires an understanding of quantum physics. Thus, there is a need to build high-level modeling abstractions of quantum programs for software engineers who are used to program on classical computers to understand and model quantum programs at a high-level of abstraction and independent of quantum platforms. To this end, we present some ideas for developing such quantum software modeling languages, by presenting a conceptual model of quantum programs and an example of modeling the state-based behavior of quantum entanglement program. Moreover, we present some open issues in the area of modeling quantum programs.
The topic of this dissertation stands at the crossroads of two emerging technologies: highly-parallel computing and quantum computing. Both seek to go beyond the limits of current computing practice: in the absence of further miniaturization, highly-parallel computing seeks to increase the available computer power substantially. Quantum Computing looks beyond the classical approach to computation, leveraging quantum-mechanical effects to increase computing power in a fundamental way. In the absence and also in the presence of actual quantum computers it is crucial to support the development of quantum computer applications by creating an appropriate software framework. Creating such a framework currently faces two major research challenges. First, one needs to separate the realization of the quantum computer from the software running on it, whether it is an actual physical or a simulated realization. Our first contribution lies with defining a layered software architecture, ranging from a design tool at the higher abstraction levels to a simulated execution layer underneath. At its core sits a ‘Quantum Virtual Machine’ using the Measurement Calculus as the underlying quantum computational model. Such a virtual machine layer makes the application developed on top of it oblivious to how it is executed. The simulated execution of this quantum virtual machine is fundamentally a computationally intensive task. Parallel computing offers a way to throw more computational resources at the problem, in the light of the saturation of sequential performance of current computers. Simulation is the domain of the second challenge, as it has very high performance requirements. The simulation problem thus becomes: how does one expose the inherent parallelism of quantum computing simulation in a fundamental way, so as to be usable for the highly-parallel computers to come? Our second contribution is to provide a formal translation of quantum programs to highly-parallel dataflow computations, and to develop a virtual environment that compiles and executes such programs. This work demonstrates several properties of both the formal as well as the virtual level of computation that validate our approach.
Quantum computing, built on the principles of quantum mechanics, has emerged as a transformative paradigm with the potential to revolutionize computational capabilities, enabling solutions to problems that are currently intractable for classical systems. Quantum computing integrates hardware, architectures, and software for improved applications while utilizing superposition, entanglement, and interference to promote materials science, cryptography, optimization, and artificial intelligence. Sections introduce and describe the model components needed in order to create quantum processors, including qubits, quantum gates and control electronics, as well as a review of new developments in quantum software frameworks and programming tools. Notable examples, such as Shor’s algorithm for cryptographic caveat, Grover’s algorithm for inefficient search processes, and quantum-enhanced optimization, illuminate the position of quantum computing as a means of tackling tough problems that span disciplines, such as pharmaceuticals, predictors of climate, and finance modeling. However, the field continues to face significant challenges, like limited scalability, quantum gate error rates, qubit coherence times, and difficulties integrating with classical systems. Future efforts will focus on developing hybrid quantum-classical systems, scalable architectures, and industry- specific applications to transition quantum computing from exploration to practical deployment. This review provides a comprehensive analysis of quantum computing, covering its potential, trends, and challenges, while exploring hardware-software integration, classicalquantum comparisons, and insights to guide research and industry in unlocking its revolutionary possibility.
Quantum computing, a transformative field that emerged from quantum mechanics and computer science, has gained immense attention for its potential to revolutionize computation. This paper aims to address the fundamentals of quantum computing and provide a comprehensive guide for both novices and experts in the field of quantum computing. Beginning with the foundational principles of quantum computing, we introduce readers to the fundamental concepts of qubits, superposition, entanglement, interference, and noise. We explore quantum hardware, quantum gates, and basic quantum circuits. This study offers insight into the current phase of quantum computing, including the noisy intermediate-scale quantum (NISQ) era and its potential for solving real-world problems. Furthermore, we discuss the development of quantum algorithms and their applications, with a focus on famous algorithms like Shor’s algorithm and Grover’s algorithm. We also touch upon quantum computing’s impact on various industries, such as cryptography, optimization, machine learning, and material science. By the end of this paper, readers will have a solid understanding of quantum computing’s principles, applications, and the steps involved in developing quantum circuits. Our goal is to provide a valuable resource for those eager to embark on their quantum computing journey and for researchers looking to stay updated on this rapidly evolving field.
A quantum machine may solve some complex problems that are intractable for even the most powerful classical computers. By exploiting quantum superposition and entanglement phenomena, quantum algorithms can achieve from polynomial to exponential speed up when compared to their best classical counterparts. A quantum computer will be a part of a heterogeneous, multi-core computer in which a classical processor will interact with several accelerators such as FPGAs, GPUs and also a quantum co-processor. Figure 1 shows the different layers of the quantum computer system stack [1]. Building such a quantum system requires contributions from different fields such as physics, electronics, computer science and computer engineering for addressing the following challenges: i) build scalable quantum chips integrating qubits with long coherence times and high-fidelity operations, ii) develop classical control electronics at possibly cryogenic temperatures and iii) create the microarchitecture as well as the software for quantum computation.