# A functional quantum programming language

@article{Grattage2005AFQ, title={A functional quantum programming language}, author={Jonathan Grattage}, journal={20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05)}, year={2005}, pages={249-258} }

We introduce the language QML, a functional language for quantum computations on finite types. Its design is guided by its categorical semantics: QML programs are interpreted by morphisms in the category FQC of finite quantum computations, which provides a constructive semantics of irreversible quantum computations realisable as quantum gates. QML integrates reversible and irreversible quantum computations in one language, using first order strict linear logic to make weakenings explicit…

## Figures from this paper

figure 2.1 figure 2.3 figure 2.4 figure 2.5 figure 2.6 figure 2.7 figure 3.1 figure 3.10 figure 3.4 figure 3.7 figure 3.9 figure 4.1 figure 4.2 figure 4.3 figure 4.4 figure 5.1 figure 5.2 figure 5.3 figure 5.4 figure 6.1 figure 6.2 figure 6.3 figure 6.5 figure 6.6 figure 7.1 figure 8.1 figure A.2 figure A.3 figure A.4 figure A.5 figure A.6

## 225 Citations

QML : Quantum data and control

- Computer Science
- 2005

This work presents an operational semantics of QML programs using quantum circuits, and a denotational semantics using superoperators, and introduces the language QML, a functional language for quantum computations on finite types.

Compilation to quantum circuits for a language with quantum data and control

- Computer Science2013 Federated Conference on Computer Science and Information Systems
- 2013

A semantics for nQML is defined, which translates programs to quantum circuits in the category FQC of finite quantum computations, following the approach of Altenkirch and Grattage's QML.

Semantics and simulation of communication in quantum programming

- Computer ScienceArXiv
- 2005

CQPL possesses a denotational semantics based on a partial order of superoperators and uses fixed points on a generalised Hilbert space to formalise the exchange of classical and quantum data between an arbitrary number of participants.

A lambda calculus for quantum computation with classical control

- Computer Science
- 2005

A functional programming language for quantum computers, by extending the simply-typed lambda calculus with quantum types and operations, and gives a type system using affine intuitionistic linear logic.

A lambda calculus for quantum computation with classical control

- Computer ScienceMathematical Structures in Computer Science
- 2006

A functional programming language for quantum computers by extending the simply-typed lambda calculus with quantum types and operations, and gives a type system using affine intuitionistic linear logic.

Quantum Alternation: Prospects and Problems

- Computer ScienceQPL
- 2015

This work proposes a notion of quantum control in a quantum programming language which permits the superposition of finitely many quantum operations without performing a measurement, and shows that adding such a quantum IF statement to the QPL programming language simplifies the presentation of several quantum algorithms.

Semantics of a purely quantum programming language

- Computer Science
- 2005

It is shown that quantum programs can be treated as either super-operators on density matrices or healthy transformers on quantum predicates, which gives a complete characterization of physically realizable quantum programs in terms of healthy quantum predicate transformers.

Reversibility for Quantum Programming Language QML

- Computer ScienceIEEE Latin America Transactions
- 2020

An extension of the denotational semantic model of the quantum programming language QML, to which computational reversibility is incorporated, and a history track is incorporated which allows reversibility in QML.

Towards Automatically Construct Quantum Circuits for Quantum Programs with Quantum Control

- Computer Science2017 IEEE 85th Vehicular Technology Conference (VTC Spring)
- 2017

It is figured out that in fact, [qif] clause is a quantum multiplexor (QMUX) and can be implemented with the help of construction arbitrary two-dimensional controlled-unitary using Z-Y rotation using LIQUi|>.

## References

SHOWING 1-10 OF 92 REFERENCES

Towards a quantum programming language

- Computer ScienceMathematical Structures in Computer Science
- 2004

This paper describes the syntax and semantics of a simple quantum programming language with high-level features such as loops, recursive procedures, and structured data types, and has an interesting denotational semantics in terms of complete partial orders of superoperators.

Quantum Computation, Categorical Semantics and Linear Logic

- MathematicsArXiv
- 2003

A type theory and denotational semantics are developed and provided for a simple fragment of the quantum lambda calculus, a formal language for quantum computation based on linear logic.

Operational semantics for formal tensorial calculus

- Computer Science
- 2004

A functional language where all functions are linear operators by construction is defined, and the linear-algebraic -calculus hereby constructed is linear in a different (yet related) sense to that, say, of the linear -Calculus.

A Lambda Calculus for Quantum Computation with Classical Control

- Computer ScienceTLCA
- 2005

The main results of this paper are the safety properties of the language and the development of a type inference algorithm.

Structure and interpretation of quantum mechanics: a functional framework

- Computer ScienceHaskell '03
- 2003

It is concluded that functional languages are right tools for formal computations in quantum physics by constructing effectively the tensor states for composed systems and a toy model of quantum circuit toolbox.

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.

Communicating quantum processes

- Computer SciencePOPL '05
- 2005

The syntax, operational semantics and type system of CQP are formally defined, and it is proved that the semantics preserves typing, and that typing guarantees that each qubit is owned by a unique process within a system.

Structuring quantum effects: superoperators as arrows

- Computer ScienceMathematical Structures in Computer Science
- 2006

The model of quantum computation based on density matrices and superoperators can be decomposed into a pure classical (functional) part and an effectful part modelling probabilities and measurement and expressed in the Haskell programming language using its special syntax for arrow computations.

Procedural Quantum Programming

- Computer Science
- 2002

This paper investigates how the concept of procedural programming languages can be adopted to the field of quantum computing, and how non‐classical features like the reversibility of unitary transformations, the non‐observability of quantum states or the lack of copy and erase operations can be reflected semantically.