Abstract
Quantum computing is a rapidly growing field with the potential to change how we solve previously intractable problems. Emerging hardware is approaching a complexity that requires increasingly sophisticated programming and control. Scaffold is an older quantum programming language that was originally designed for resource estimation for far-future, large quantum machines, and ScaffCC is the corresponding LLVM-based compiler. For the first time, we provide a full and complete overview of the language itself, the compiler as well as its pass structure. While previous works Abhari et al (2015 Parallel Comput. 45 2-17), Abhari et al (2012 Scaffold: quantum programming language https://cs.princeton.edu/research/techreps/TR-934-12), have piecemeal descriptions of different portions of this toolchain, we provide a more full and complete description in this paper. We also introduce updates to ScaffCC including conditional measurement and multidimensional qubit arrays designed to keep in step with modern quantum assembly languages, as well as an alternate toolchain targeted at maintaining correctness and low resource count for noisy-intermediate scale quantum (NISQ) machines, and compatibility with current versions of LLVM and Clang. Our goal is to provide the research community with a functional LLVM framework for quantum program analysis, optimization, and generation of executable code.
Original language | English (US) |
---|---|
Article number | 034013 |
Journal | Quantum Science and Technology |
Volume | 5 |
Issue number | 3 |
DOIs | |
State | Published - Jul 2020 |
All Science Journal Classification (ASJC) codes
- Atomic and Molecular Physics, and Optics
- Materials Science (miscellaneous)
- Physics and Astronomy (miscellaneous)
- Electrical and Electronic Engineering
Keywords
- LLVM
- Scaffold
- compilers
- programming languages
- quantum compiler
- quantum computing
- quantum programming languages