## Towards a quantum programming language (2004)

Venue: | Mathematical Structures in Computer Science |

Citations: | 112 - 13 self |

### BibTeX

@INPROCEEDINGS{Selinger04towardsa,

author = {Peter Selinger},

title = {Towards a quantum programming language},

booktitle = {Mathematical Structures in Computer Science},

year = {2004},

pages = {527--586}

}

### Years of Citing Articles

### OpenURL

### Abstract

The field of quantum computation suffers from a lack of syntax. In the absence of a convenient programming language, algorithms are frequently expressed in terms of hardware circuits or Turing machines. Neither approach particularly encourages structured programming or abstractions such as data types. In this paper, we describe the syntax and semantics of a simple quantum programming language. This language provides high-level features such as loops, recursive procedures, and structured data types. It is statically typed, and it has an interesting denotational semantics in terms of complete partial orders of superoperators. 1

### Citations

829 | Algorithms for quantum computation: Discrete logarithms and factoring
- Shor
- 1997
(Show Context)
Citation Context .... Let qbit list be the type of lists of quantum bits, defined by the recursive equation qbit list := I ⊕ (qbit ⊗ (qbit list)). Figure 13 shows an implementation of the Quantum Fourier Transform (QFT) =-=[13, 10]-=-, which is of type qbit list → qbit list. The algorithm shown differs from the standard 41Quantum Fourier Transform in that we have omitted the final step which reverses the order of the bits in the ... |

166 |
Traced monoidal categories
- Joyal, Street, et al.
- 1996
(Show Context)
Citation Context ...es Q into a CPO-enriched category. Trace. A monoidal trace on a monoidal category (Q, ⊕) is a natural family of operations Tr τ σ,σ ′ : Q(σ ⊕ τ, σ′ ⊕ τ) → Q(σ, σ ′ ), subject to a number of equations =-=[7, 6, 12]-=-. A monoidal category with a monoidal trace is called a traced monoidal category. A monoidal trace is usually just called “trace”, but we add the adjective “monoidal” here to to avoid confusion with t... |

153 |
Foundations of Computing
- Gruska
- 1997
(Show Context)
Citation Context ...ic notions from quantum computation ) . ′bjj ′. Here we order the pairs In this section, we very briefly summarize the basic notions of quantum computation. For a more thorough introduction, see e.g. =-=[3, 5, 10]-=-. 3.1 Quantum bits The basic data type of quantum computation is a quantum bit, also called a qubit or, even more succinctly, a qbit. Recall that the possible states of a classical bit b are b = 0 and... |

62 | P.Zuliani: Quantum programming
- Sanders
(Show Context)
Citation Context ...structed and manipulated at run-time, even allowing run-time optimizations 2of operator representations. A quantum programming language of a somewhat different flavor is given by Sanders and Zuliani =-=[11]-=-. Their language qGCL, which is based on an extension of Dijkstra’s guarded-command language, is primarily useful as a specification language. Its syntax includes high-level mathematical notation, and... |

60 | Models of Sharing Graphs: A Categorical Semantics of let and letrec. Distinguished Dissertation Series
- Hasegawa
- 1999
(Show Context)
Citation Context ...es Q into a CPO-enriched category. Trace. A monoidal trace on a monoidal category (Q, ⊕) is a natural family of operations Tr τ σ,σ ′ : Q(σ ⊕ τ, σ′ ⊕ τ) → Q(σ, σ ′ ), subject to a number of equations =-=[7, 6, 12]-=-. A monoidal category with a monoidal trace is called a traced monoidal category. A monoidal trace is usually just called “trace”, but we add the adjective “monoidal” here to to avoid confusion with t... |

47 | Conventions for quantum pseudocode
- Knill
- 1996
(Show Context)
Citation Context ...actual future quantum hardware may differ; these differences must be handled by implementors and are not part of the language design. A suitable hardware model for our purposes is the QRAM machine of =-=[8]-=-. This machine consists of a general-purpose classical computer which controls a special quantum hardware device. The quantum device provides a potentially large number of individually addressable 1q... |

41 | Toward an architecture for quantum programming
- Bettelli, Calarco, et al.
(Show Context)
Citation Context ... and many useful high-level quantum features, such as automatic scratch space management and syntactic reversibility of user-defined quantum operators. Partly building on Ömer’s work, Bettelli et al. =-=[2]-=- present a quantum programming language which is an extension of the well-known language C++. The distinguishing feature of this language is that it treats quantum operators as firstclass objects whic... |

29 | A Procedural Formalism for Quantum Computing
- Ömer
- 1998
(Show Context)
Citation Context ...sic principles for writing pseudo-code for quantum algorithms. These principles have influenced the design of some later language designs. The first actual quantum programming language is due to Ömer =-=[9]-=-. Ömer defines a rich procedural language QCL, which contains a full-fledged classical sublanguage and many useful high-level quantum features, such as automatic scratch space management and syntactic... |

22 | An introduction to quantum complexity theory
- Cleve
- 1999
(Show Context)
Citation Context ...ic notions from quantum computation ) . ′bjj ′. Here we order the pairs In this section, we very briefly summarize the basic notions of quantum computation. For a more thorough introduction, see e.g. =-=[3, 5, 10]-=-. 3.1 Quantum bits The basic data type of quantum computation is a quantum bit, also called a qubit or, even more succinctly, a qbit. Recall that the possible states of a classical bit b are b = 0 and... |

17 |
Quantum Information and Computation
- Preskill
(Show Context)
Citation Context ...ic notions from quantum computation ) . ′bjj ′. Here we order the pairs In this section, we very briefly summarize the basic notions of quantum computation. For a more thorough introduction, see e.g. =-=[3, 5, 10]-=-. 3.1 Quantum bits The basic data type of quantum computation is a quantum bit, also called a qubit or, even more succinctly, a qbit. Recall that the possible states of a classical bit b are b = 0 and... |

16 | Physical traces: Quantum vs. classical information processing - Abramsky, Coecke - 2003 |

10 |
Categorical Structure of Asynchrony
- Selinger
- 1999
(Show Context)
Citation Context ...es Q into a CPO-enriched category. Trace. A monoidal trace on a monoidal category (Q, ⊕) is a natural family of operations Tr τ σ,σ ′ : Q(σ ⊕ τ, σ′ ⊕ τ) → Q(σ, σ ′ ), subject to a number of equations =-=[7, 6, 12]-=-. A monoidal category with a monoidal trace is called a traced monoidal category. A monoidal trace is usually just called “trace”, but we add the adjective “monoidal” here to to avoid confusion with t... |

1 |
Entre logique et quantique. Manuscript, Institut de Mathématiques de Luminy
- Girard
- 2002
(Show Context)
Citation Context ...ambda calculus. Possible semantic models of such a language might be drawn from the recent work of Abramsky and Coecke [1], or from the theory of “quantum coherence spaces” recently defined by Girard =-=[4]-=-. 7.4 Example: The Quantum Fourier Transform. We given an example of the use of recursive types. Let qbit list be the type of lists of quantum bits, defined by the recursive equation qbit list := I ⊕ ... |