**9. Hardware and software of quantum computers**

There should be an interface between the quantum computer and conventional computers for tasks related to data, networks, and users. In order to function usefully, the quantum qubit system needs organized control that can be managed by a conventional computer. The necessary hardware components for analog quantum computers are designed in 4 conceptual layers. First is the "quantum data plane" where qubit is present. Second is the "control and measurement plane" which is liable for performing operations and measurement on qubits as needed. The third is the "control processor plane" which defines the sequence of those operations and measurement outcomes to inform successive quantum operations required by the algorithm. And the last one is "host processor" which is a classical computer running a conventional operating system that handles user interfaces, network access, and big storage data structures. The processor is controlled using a high bandwidth connection that it provides [13].

A functional Quantum computer also requires software components in addition to the hardware. It is comparable to classical computers. Various new tools including programming languages are needed to substantiate quantum operations so that programmers can formulate algorithms, compilers that can map them to the hardware used by quantum computers and some other supports which can evaluate, optimize, debug and test programs. The programming language must be designed for any targeting quantum architecture. Some preparatory tools have been developed to support quantum computers and are accessible on the web [14]. These tools must be designed in an abstract way so that software developers can think more algorithmically without much concern for details of quantum mechanics. This software must be flexible enough to adapt to the changes in hardware and algorithms. This is one of the biggest challenges in quantum computing to develop complete software architecture. Other than programming languages, there must be simulation tools for modeling quantum operations and tracking quantum states and optimization tools for evaluating needed qubit resources so that it can perform different quantum algorithms in an efficient manner. The main goal is to minimize the number of qubits and the operations required for the hardware [15].
