Towards Higher-Level Abstractions for Quantum Computing
Adrian Cobb, Jean-Guy Schneider, Kevin Lee
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.
Australasian Computer Science Week Multiconference (ACSW)•Feb 14, 2022•6 citations