QDB: From Quantum Algorithms Towards Correct Quantum Programs
arXiv:1811.05447 · doi:10.4230/OASIcs.PLATEAU.2018.4
Abstract
With the advent of small-scale prototype quantum computers, researchers can now code and run quantum algorithms that were previously proposed but not fully implemented. In support of this growing interest in quantum computing experimentation, programmers need new tools and techniques to write and debug QC code. In this work, we implement a range of QC algorithms and programs in order to discover what types of bugs occur and what defenses against those bugs are possible in QC programs. We conduct our study by running small-sized QC programs in QC simulators in order to replicate published results in QC implementations. Where possible, we cross-validate results from programs written in different QC languages for the same problems and inputs. Drawing on this experience, we provide a taxonomy for QC bugs, and we propose QC language features that would aid in writing correct code.
References in corpus (9)
- Quantum Computing in the NISQ era and beyond
- A variational eigenvalue solver on a quantum processor
- Quantum computational chemistry
- Towards Quantum Chemistry on a Quantum Computer
- Experimental Comparison of Two Quantum Computing Architectures
- Experimental demonstration of Shor's algorithm with quantum entanglement
- Resource-Aware Quantum Programming with General Recursion and Quantum Control
- Gate count estimates for performing quantum chemistry on small quantum computers
- Concrete Categorical Model of a Quantum Circuit Description Language with Measurement
Cited by in corpus (9)
- Quantum Software Engineering: Landscapes and Horizons
- Bugs in Quantum Computing Platforms: An Empirical Study
- A Deductive Verification Framework for Circuit-building Quantum Programs
- Quantum Computing: An Overview Across the System Stack
- Formal Verification of Quantum Programs: Theory, Tools and Challenges
- Quantum Hoare Type Theory: Extended Abstract
- Quantum Hoare Type Theory
- QRCC: Evaluating Large Quantum Circuits on Small Quantum Computers through Integrated Qubit Reuse and Circuit Cutting
- Identifying Bug Patterns in Quantum Programs