This paper is the second part of a series of two articles on quantum computation. If the first part was mostly concerned with the mathematical formalism, here we turn to the programmer's perspective. We analyze the various existing models of quantum computation and the problem of the stability of quantum information. We discuss the needs and challenges for the design of a scalable quantum programming language. We then present two interesting approaches and examine their strengths and weaknesses. Finally, we take a step back, and review the state of the research on the semantics of quantum computation, and how this can help in achieving some of the goals.Keywords Quantum Computation, Models of Computation, Quantum Programming Language, Semantics. §1 Introduction This paper is the second part of a two-articles series. The first part 30) was concerned with a general introduction to quantum computation; in this article, we discus quantum computation specifically from a programmer's perspective.Supported by the Intelligence Advanced Research Projects Activity (IARPA) via Department of Interior National Business Center contract number D11PC20168. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon. Disclaimer: The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of IARPA, DoI/NBC, or the U.S. Government.
Benoît ValironIn particular, we assume that the quantum device is already scalable and that we already know which algorithm we want to implement. The questions we want to be able to answer are how to actually write the algorithm and how to make sure that it is correct, and that it will run as expected.The paper is organized as follows. First we discuss the distinction between the abstract models of computation in which algorithms are usually defined; then we focus on the aspect that is not addressed in these scheme, that is, the problem of error detection and correction. We then turn to the question of the programming of quantum devices, from the perspective of the discussed computational models. We first discuss the need for an actual quantum programming language: why we need one, what can we expect from it. Then we develop two attempts at building a language, and discuss their strengths, their weaknesses and what lessons can be kept for future work.To conclude the paper, we analyze what have been done in the semantics of quantum computation: how they relate to models of computation, and what benefits these studies can bring. §2 Ideal versus realistic models of computationIn this section, we turn to the question of setting up a robust setting for performing quantum computation. There are two sides to this coin: the first is to define a logical layer, resilient to decoherence, and the other is the definition of a paradigm for quantum computation, with ideal quantum bits.
Models ...