Quantum software supports the development, testing, evaluation, execution, and operation of quantum-computing applications. It forms the interface between quantum algorithms and the hardware that runs them, and divides broadly into application software and system software. section 1.3.3
A quantum software stack commonly includes:
- Application software, which implements quantum algorithms for practical problems such as evaluating molecular properties. section 1.3.3
- Programming tools, including hardware-agnostic languages such as Q# and embedded libraries such as Qiskit for Python. section 1.3.3
- Middle-layer system software, which converts high-level application code into representations suitable for quantum hardware. section 1.3.3
Developing quantum applications follows a practical workflow: devise and implement an algorithm, often as a hybrid combination of quantum and classical code; validate correctness; estimate performance and resources; then determine whether the program fits available hardware. section 1.3.4
Testing differs from classical debugging because hardware measurements cannot reveal a quantum system’s complete state. Classical quantum simulators can expose internal state for small instances, simplifying validation and avoiding hardware noise during early testing. section 1.3.4
Figure 1.3 A quantum software stack serves as an interface between the quantum algorithms and the hardware running them. Its components mirror those of the classical software stack.
Use the stack diagram to navigate the layers connecting quantum algorithms, programming tools, system software, and quantum hardware. section 1.3.3
Figure 1.4 Quantum application software development workflow. From the developer perspective, it is similar to the classical software development workflow, with some differences to account for the nature of quantum computing. For example, using quantum simulators instead of the hardware makes testing quantum code on small problems faster and easier because it eliminates the need to account for noise.
Use the workflow diagram to follow implementation, validation, performance evaluation, and hardware-fit assessment. section 1.3.4
