# A Software Methodology for Compiling Quantum Programs

@article{Hner2016ASM, title={A Software Methodology for Compiling Quantum Programs}, author={Thomas H{\"a}ner and Damian S. Steiger and Krysta Marie Svore and Matthias Troyer}, journal={ArXiv}, year={2016}, volume={abs/1604.01401} }

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…

## Figures, Tables, and Topics from this paper

## 109 Citations

Programming languages and compiler design for realistic quantum hardware

- Computer Science, MedicineNature
- 2017

The challenge is to find abstractions that expose key details while hiding enough complexity in quantum toolflows to bridge the gap between hardware size and reliability requirements of quantum computing algorithms and physical machines foreseen within the next ten years.

Overview and Comparison of Gate Level Quantum Software Platforms

- Computer Science, MathematicsQuantum
- 2019

A current picture of the rapidly evolving quantum computing landscape is provided by comparing four software platforms - Forest, Qiskit, ProjectQ, and the Quantum Developer Kit (Q#) - that enable researchers to use real and simulated quantum devices.

Resource-Efficient Quantum Computing by Breaking Abstractions

- Computer Science, PhysicsProceedings of the IEEE
- 2020

This review points out that greater efficiency of QC systems can be achieved by breaking the abstractions between these layers, including two hardware-aware compilation optimizations that break the quantum instruction set architecture (ISA) abstraction and two error-correction/information-processing schemes that breakThe qubit abstraction.

Quantum Circuit Compilation : An Emerging Application for Automated Reasoning

- Computer Science
- 2019

A software framework to enable an automated reasoning approach to Quantum Circuit Compilation for NISQ architectures (QCC-NISQ), and the current implementation of it as part of software suite for automated, architecture-aware, compilation for emerging quantum computers.

Quantum Compiling

- Computer Science, PhysicsArXiv
- 2021

This paper reviews the quantum compiling stack of both gate model quantum computers and the adiabatic quantum computers, respectively, and discusses commercial initiatives and quantum compiling products, including explicit programming examples.

Boolean satisfiability in quantum compilation

- Medicine, Computer SciencePhilosophical Transactions of the Royal Society A
- 2019

The flow of quantum compilation is described and algorithms based on Boolean satisfiability are proposed, which are a good match to tackle such computationally complex problems.

Optimized Compilation of Aggregated Instructions for Realistic Quantum Computers

- Computer Science, PhysicsASPLOS
- 2019

A universal quantum compilation methodology that aggregates multiple logical operations into larger units that manipulate up to 10 qubits at a time and optimizes these aggregates by finding commutative intermediate operations that result in more efficient schedules and creating custom control pulses optimized for the aggregate.

ProjectQ: An Open Source Software Framework for Quantum Computing

- Computer Science, PhysicsArXiv
- 2016

We introduce ProjectQ, an open source software effort for quantum computing. The first release features a compiler framework capable of targeting various types of hardware, a high-performance…

The engineering challenges in quantum computing

- Computer ScienceDesign, Automation & Test in Europe Conference & Exhibition (DATE), 2017
- 2017

The basic concepts of quantum computing are introduced and what the required layers are for building a quantum system are described, as well as discussing some compiler and programming issues relative to quantum algorithms.

An Experimental Microarchitecture for a Superconducting Quantum Processor

- Computer Science, Physics2017 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)
- 2017

A set of quantum microinstructions that allows flexible control of quantum operations with precise timing is designed that is based on a codeword-based event control scheme, queue-based precise event timing control, and a flexible multilevel instruction decoding mechanism for control.

## References

SHOWING 1-10 OF 69 REFERENCES

ScaffCC: a framework for compilation and analysis of quantum computing programs

- Computer ScienceConf. Computing Frontiers
- 2014

This work presents a scalable compiler for large-scale quantum applications, and highlights the importance of high-level quantum compilation for logical circuit translation, quantitative analysis of algorithms, and optimization of circuit lengths.

LIQUi|>: A Software Design Architecture and Domain-Specific Language for Quantum Computing

- Computer Science, PhysicsArXiv
- 2014

Languages, compilers, and computer-aided design tools will be essential for scalable quantum computing, which promises an exponential leap in our ability to execute complex tasks. LIQUi|> is a…

Layered architecture for quantum computing

- Physics
- 2012

We develop a layered quantum computer architecture, which is a systematic framework for tackling the individual challenges of developing a quantum computer while constructing a cohesive device…

Quipper: a scalable quantum programming language

- Computer SciencePLDI 2013
- 2013

Quipper, a scalable, expressive, functional, higher-order quantum programming language, which is geared towards a model of computation that uses a classical computer to control a quantum device, but is not dependent on any particular model of quantum hardware.

Quantum Circuit Simplification and Level Compaction

- Mathematics, PhysicsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
- 2008

This paper considers a local optimization technique based on templates to simplify and reduce the depth of nonoptimal quantum circuits and shows how templates can be used to compact the number of levels of a quantum circuit.

A layered software architecture for quantum computing design tools

- Computer ScienceComputer
- 2006

A proposed four-phase design flow assists with computations by transforming a quantum algorithm from a high-level language program into precisely scheduled physical actions.

Quantum programming languages: survey and bibliography

- Computer ScienceMathematical Structures in Computer Science
- 2006

The study of quantum Programming languages is justified, the basics of quantum computing are presented, the literature in quantum programming languages is surveyed, and directions for future research are indicated.

Reversible circuit compilation with space constraints

- Mathematics, PhysicsArXiv
- 2015

REVS is introduced, a compiler for reversible circuits that can translate a subset of the functional programming language F# into Toffoli networks which can then be further interpreted for instance in LIQui|>, a domain-specific language for quantum computing and which is also embedded into F#.

A Procedural Formalism for Quantum Computing

- Computer Science
- 2002

QCL (Quantum Computation Language) is a hight level, architecture independent programming language for quantum computers, with a syntax derived from classical procedural languages like C or Pascal, which allows for the complete implementation and simulation of quantum algorithms in one consistent formalism.

Gate count estimates for performing quantum chemistry on small quantum computers

- Physics
- 2014

As quantum computing technology improves and quantum computers with a small but non-trivial number of N > 100 qubits appear feasible in the near future the question of possible applications of small…