Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Log inSign up
Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Blog
Job Board
Q3AS

© 2026 Aqora Quantum S.A.S.

TermsPrivacyLegal Notice

IEEE High Performance Extreme Computing Conference

A quantum macro assembler

Scott Pakin

Published Sep 1, 2016• 31 citations
Publisher

Abstract

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.

DOI
10.1109/hpec.2016.7761637

Related papers

C to D-Wave: A High-level C Compilation Framework for Quantum Annealers

Mohamed W. Hassan, Scott Pakin, Wu-chun Feng

A quantum annealer solves optimization problems by exploiting quantum effects. Problems are represented as Hamiltonian functions that define an energy landscape. The quantum-annealing hardware relaxes to a solution corresponding to the ground state of the energy landscape. Expressing arbitrary programming problems in terms of real-valued Hamiltonian-function coefficients is unintuitive and challenging. This paper addresses the difficulty of programming quantum annealers by presenting a compilation framework that compiles a subset of C code to a quantum machine instruction (QMI) to be executed on a quantum annealer. Our work is based on a modular software stack that facilitates programming D-Wave quantum annealers by successively lowering code from C to Verilog to a symbolic “quantum macro assembly language” and finally to a device-specific Hamiltonian function. We demonstrate the capabilities of our software stack on a set of problems written in C and executed on a D-Wave 2000Q quantum annealer.

IEEE High Performance Extreme Computing Conference•Sep 1, 2019•10 citations

A Software Development Kit and Translation Layer for Executing Intel 8080 Assembler on a Quantum Computer (August 2022)

James Fitzjohn, Adrian Winckles, George B. Wilson +1 more

One of the major obstacles to the adoption of quantum computing is the requirement to define quantum circuits at the quantum gate level. Many programmers are familiar with high-level or low-level programming languages but not quantum gates nor the low-level quantum logic required to derive useful results from quantum computers. The steep learning curve involved when progressing from quantum gates to complex simulations such as Shor's algorithm has proven too much for many developers. The purpose of this paper and the software presented within, addresses this challenge by providing a Software Development Kit (SDK), translation layer, emulator and a framework of techniques for executing Intel 8080/Z80 assembler on a quantum computer, i.e. all salient points of CPU execution, logic, arithmetic and bitwise manipulation will be executed on the quantum computer using quantum circuits. This provides a novel means of displaying the equivalency and interoperability of quantum and classical computers. Developers and researchers can use the SDK to write code in Intel 8080/Z80 assembler which is executed locally via traditional emulation and remotely on a quantum computer in parallel. The emulator features side-by-side code execution with visibility of the running quantum circuit and re-usable/overridable methods. This enables programmers to learn, reuse and contrast techniques for performing any traditional CPU based technique/instruction on a quantum computer; e.g. a programmer may know how to multiply and perform checks on a classical CPU but is not able to perform the same tasks in a quantum implementation, this SDK allows the programmer to pick and choose the methods they would like to use to fulfil their requirements. The SDK makes use of open-source software, specifically Python and Qiskit for the emulation, translation, API calls and execution of user supplied code or binaries.

IEEE Transactions on Quantum Engineering•Jan 1, 2022•4 citations

A software methodology for compiling quantum programs

Thomas Häner, Damian S. Steiger, Krysta M. Svore +1 more

Abstract Quantum computers promise to transform our notions of computation by offering a completely new paradigm. To achieve scalable quantum computation, optimizing compilers and a corresponding software design flow will be essential. We present a software architecture for compiling quantum programs from a high-level language program to hardware-specific instructions. We describe the necessary layers of abstraction and their differences and similarities to classical layers of a computer-aided design flow. For each layer of the stack, we discuss the underlying methods for compilation and optimization. Our software methodology facilitates more rapid innovation among quantum algorithm designers, quantum hardware engineers, and experimentalists. It enables scalable compilation of complex quantum algorithms and can be targeted to any specific quantum hardware implementation.

arXiv:1604.01401•Quantum Science and Technology•Jan 8, 2018•172 citations

Programming a D-wave annealing-based quantum computer: tools and techniques

Scott Pakin, Steven P. Reinhardt

Quantum annealing is a form of quantum computing that exploits quantum effects to probabilistically solve a specific, NP-hard problem: finding the ground state of a classical, Ising-model Hamiltonian. Because physical quantum annealers are already available, there exists the pressing question of how to program such systems. That is, how can one map a computational problem into the coefficients of an Ising-model Hamiltonian for solution by quantum-annealing hardware? In this article, we address that question primarily from a practical standpoint. We survey extant software tools intended for programming D-wave annealing-based quantum processors and examine the programming model and solution technique promoted by each tool in an attempt to showcase the variety of contemporary approaches to solving computationally challenging problems on an existing annealing-based quantum computer.

Quantum Information and Computation•Sep 1, 2019•1 citation

The Art of Abstraction in Quantum Software

Olivia Di Matteo

As the scale and capability of quantum hardware improves, there is a growing need for more expressive languages and frameworks that enable developers to write, optimize, and debug quantum programs beyond low-level quantum circuits. Motivated by ongoing collaborative work [1], this talk will showcase the role of abstraction in quantum software development. The characteristics of “good” abstractions will be described, and their importance highlighted by the examples of building an interactive quantum debugger [2], and optimizing quantum programs at multiple levels. Determining the “right” set of abstractions is a challenging open question that requires further research.

IEEE/ACM International Workshop on Quantum Software Engineering (Q-SE)•May 3, 2025•3 citations

The Quantum Circuit Model is not a Practical Representation of Quantum Software

Arianne Meijer-van de Griend

This position paper argues that the quantum circuit model is not a practical representation of quantum software for three reasons. First, the quantum circuit model is not suitable for semantical reasoning and better mathematical frameworks exist. Second, the abstraction level is too low for programming and too high for pulse-level machine code. Lastly, by ignoring the existence of a target quantum computer on which the quantum software could run, the transformation from software to quantum circuit model makes assumptions that result in inefficient machine code lower in the quantum computing stack. Thus, we conclude that new interfaces between quantum software, compiler, and quantum hardware need to be created such that the abstraction level is both suitable for the software and the hardware.

IEEE International Conference on Software Analysis, Evolution and Reengineering - Companion (SANER-C)•Mar 12, 2024•0 citations
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.
A quantum annealer solves optimization problems by exploiting quantum effects. Problems are represented as Hamiltonian functions that define an energy landscape. The quantum-annealing hardware relaxes to a solution corresponding to the ground state of the energy landscape. Expressing arbitrary programming problems in terms of real-valued Hamiltonian-function coefficients is unintuitive and challenging. This paper addresses the difficulty of programming quantum annealers by presenting a compilation framework that compiles a subset of C code to a quantum machine instruction (QMI) to be executed on a quantum annealer. Our work is based on a modular software stack that facilitates programming D-Wave quantum annealers by successively lowering code from C to Verilog to a symbolic “quantum macro assembly language” and finally to a device-specific Hamiltonian function. We demonstrate the capabilities of our software stack on a set of problems written in C and executed on a D-Wave 2000Q quantum annealer.
One of the major obstacles to the adoption of quantum computing is the requirement to define quantum circuits at the quantum gate level. Many programmers are familiar with high-level or low-level programming languages but not quantum gates nor the low-level quantum logic required to derive useful results from quantum computers. The steep learning curve involved when progressing from quantum gates to complex simulations such as Shor's algorithm has proven too much for many developers. The purpose of this paper and the software presented within, addresses this challenge by providing a Software Development Kit (SDK), translation layer, emulator and a framework of techniques for executing Intel 8080/Z80 assembler on a quantum computer, i.e. all salient points of CPU execution, logic, arithmetic and bitwise manipulation will be executed on the quantum computer using quantum circuits. This provides a novel means of displaying the equivalency and interoperability of quantum and classical computers. Developers and researchers can use the SDK to write code in Intel 8080/Z80 assembler which is executed locally via traditional emulation and remotely on a quantum computer in parallel. The emulator features side-by-side code execution with visibility of the running quantum circuit and re-usable/overridable methods. This enables programmers to learn, reuse and contrast techniques for performing any traditional CPU based technique/instruction on a quantum computer; e.g. a programmer may know how to multiply and perform checks on a classical CPU but is not able to perform the same tasks in a quantum implementation, this SDK allows the programmer to pick and choose the methods they would like to use to fulfil their requirements. The SDK makes use of open-source software, specifically Python and Qiskit for the emulation, translation, API calls and execution of user supplied code or binaries.
Abstract Quantum computers promise to transform our notions of computation by offering a completely new paradigm. To achieve scalable quantum computation, optimizing compilers and a corresponding software design flow will be essential. We present a software architecture for compiling quantum programs from a high-level language program to hardware-specific instructions. We describe the necessary layers of abstraction and their differences and similarities to classical layers of a computer-aided design flow. For each layer of the stack, we discuss the underlying methods for compilation and optimization. Our software methodology facilitates more rapid innovation among quantum algorithm designers, quantum hardware engineers, and experimentalists. It enables scalable compilation of complex quantum algorithms and can be targeted to any specific quantum hardware implementation.
Quantum annealing is a form of quantum computing that exploits quantum effects to probabilistically solve a specific, NP-hard problem: finding the ground state of a classical, Ising-model Hamiltonian. Because physical quantum annealers are already available, there exists the pressing question of how to program such systems. That is, how can one map a computational problem into the coefficients of an Ising-model Hamiltonian for solution by quantum-annealing hardware? In this article, we address that question primarily from a practical standpoint. We survey extant software tools intended for programming D-wave annealing-based quantum processors and examine the programming model and solution technique promoted by each tool in an attempt to showcase the variety of contemporary approaches to solving computationally challenging problems on an existing annealing-based quantum computer.
As the scale and capability of quantum hardware improves, there is a growing need for more expressive languages and frameworks that enable developers to write, optimize, and debug quantum programs beyond low-level quantum circuits. Motivated by ongoing collaborative work [1], this talk will showcase the role of abstraction in quantum software development. The characteristics of “good” abstractions will be described, and their importance highlighted by the examples of building an interactive quantum debugger [2], and optimizing quantum programs at multiple levels. Determining the “right” set of abstractions is a challenging open question that requires further research.
This position paper argues that the quantum circuit model is not a practical representation of quantum software for three reasons. First, the quantum circuit model is not suitable for semantical reasoning and better mathematical frameworks exist. Second, the abstraction level is too low for programming and too high for pulse-level machine code. Lastly, by ignoring the existence of a target quantum computer on which the quantum software could run, the transformation from software to quantum circuit model makes assumptions that result in inefficient machine code lower in the quantum computing stack. Thus, we conclude that new interfaces between quantum software, compiler, and quantum hardware need to be created such that the abstraction level is both suitable for the software and the hardware.