A quantum macro assembler

We present a low-level software building block intended to be used to implement higher-level programming models atop quantum annealers such as the D-Wave 2X™. By analogy to a macro assembler for conventional architectures, our quantum macro assembler enables a programmer to express computations symbolically and without regard to the specifics of the underlying hardware. We demonstrate that the quantum macro assembler can be useful in its own right as a programming interface despite providing only a minimal level of hardware abstraction.