# Programming Quantum Computers Using Design Automation

**Authors:** Mathias Soeken, Thomas H\"aner, Martin Roetteler

arXiv: 1803.01022 · 2018-03-06

## TL;DR

This paper discusses the challenges of fully-automatic quantum program compilation and demonstrates a workflow that translates high-level algorithms into hardware-specific instructions for quantum computers, using existing tools.

## Contribution

It introduces two tool flows that automate the quantum programming process from algorithm to hardware, addressing current limitations in quantum compilation methods.

## Key findings

- Successfully automated quantum programming flow for a benchmark algorithm
- Utilized RevKit with ProjectQ and Q# tool flows for different quantum platforms
- Highlighted future research directions for fully-automatic quantum compilation

## Abstract

Recent developments in quantum hardware indicate that systems featuring more than 50 physical qubits are within reach. At this scale, classical simulation will no longer be feasible and there is a possibility that such quantum devices may outperform even classical supercomputers at certain tasks. With the rapid growth of qubit numbers and coherence times comes the increasingly difficult challenge of quantum program compilation. This entails the translation of a high-level description of a quantum algorithm to hardware-specific low-level operations which can be carried out by the quantum device. Some parts of the calculation may still be performed manually due to the lack of efficient methods. This, in turn, may lead to a design gap, which will prevent the programming of a quantum computer. In this paper, we discuss the challenges in fully-automatic quantum compilation. We motivate directions for future research to tackle these challenges. Yet, with the algorithms and approaches that exist today, we demonstrate how to automatically perform the quantum programming flow from algorithm to a physical quantum computer for a simple algorithmic benchmark, namely the hidden shift problem. We present and use two tool flows which invoke RevKit. One which is based on ProjectQ and which targets the IBM Quantum Experience or a local simulator, and one which is based on Microsoft's quantum programming language Q$\#$.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1803.01022/full.md

## Figures

12 figures with captions in the complete paper: https://tomesphere.com/paper/1803.01022/full.md

## References

73 references — full list in the complete paper: https://tomesphere.com/paper/1803.01022/full.md

---
Source: https://tomesphere.com/paper/1803.01022