Results 1  10
of
12
A functional quantum programming language
 In: Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
, 2005
"... This thesis introduces the language QML, a functional language for quantum computations on finite types. QML exhibits quantum data and control structures, and integrates reversible and irreversible quantum computations. The design of QML is guided by the categorical semantics: QML programs are inte ..."
Abstract

Cited by 46 (12 self)
 Add to MetaCart
This thesis introduces the language QML, a functional language for quantum computations on finite types. QML exhibits quantum data and control structures, and integrates reversible and irreversible quantum computations. The design of QML is guided by the categorical semantics: QML programs are interpreted by morphisms in the category FQC of finite quantum computations, which provides a constructive operational semantics of irreversible quantum computations, realisable as quantum circuits. The quantum circuit model is also given a formal categorical definition via the category FQC. QML integrates reversible and irreversible quantum computations in one language, using first order strict linear logic to make weakenings, which may lead to the collapse of the quantum wavefunction, explicit. Strict programs are free from measurement, and hence preserve superpositions and entanglement. A denotational semantics of QML programs is presented, which maps QML terms
Structuring quantum effects: Superoperators as arrows
 Mathematical Structures in Computer Science, special issue on Quantum Programming Languages
, 2006
"... We show that quantum computation can be decomposed in a pure classical (functional) part and an effectful part modeling probabilities and measurement. The effectful part can be modeled using a generalization of monads called arrows. Both the functional and effectful parts can be elegantly expressed ..."
Abstract

Cited by 16 (8 self)
 Add to MetaCart
We show that quantum computation can be decomposed in a pure classical (functional) part and an effectful part modeling probabilities and measurement. The effectful part can be modeled using a generalization of monads called arrows. Both the functional and effectful parts can be elegantly expressed in the Haskell programming language. 1
Types for Quantum Computation
, 2007
"... This thesis is a study of the construction and representation of typed models of quantum mechanics for use in quantum computation. We introduce logical and graphical syntax for quantum mechanical processes and prove that these formal systems provide sound and complete representations of abstract qua ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
This thesis is a study of the construction and representation of typed models of quantum mechanics for use in quantum computation. We introduce logical and graphical syntax for quantum mechanical processes and prove that these formal systems provide sound and complete representations of abstract quantum mechanics. In addition, we demonstrate how these representations may be used to reason about the behaviour of quantum computational processes. Quantum computation is presently mired in lowlevel formalisms, mostly derived directly from matrices over Hilbert spaces. These formalisms are an obstacle to the full understanding and exploitation of quantum effects in informatics since they obscure the essential structure of quantum states and processes. The aim of this work is to introduce higher level tools for quantum mechanics which will be better suited to computation than those presently employed in the field. Inessential details of Hilbert space representations are removed and the informatic structures are presented directly. Entangled states are particularly
A brief survey of quantum programming languages
 In Proceedings of the 7th International Symposium on Functional and Logic Programming
, 2004
"... Abstract. This article is a brief and subjective survey of quantum programming language research. 1 Quantum Computation Quantum computing is a relatively young subject. It has its beginnings in 1982, when Paul Benioff and Richard Feynman independently pointed out that a quantum mechanical system can ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
Abstract. This article is a brief and subjective survey of quantum programming language research. 1 Quantum Computation Quantum computing is a relatively young subject. It has its beginnings in 1982, when Paul Benioff and Richard Feynman independently pointed out that a quantum mechanical system can be used to perform computations [11, p.12]. Feynman’s interest in quantum computation was motivated by the fact that it is computationally very expensive to simulate quantum physical systems on classical computers. This is due to the fact that such simulation involves the manipulation is extremely large matrices (whose dimension is exponential in the size of the quantum system being simulated). Feynman conceived of quantum computers as a means of simulating nature much more efficiently. The evidence to this day is that quantum computers can indeed perform certain tasks more efficiently than classical computers. Perhaps the bestknown example is Shor’s factoring algorithm, by which a quantum computer can find
QML: Quantum data and control
, 2005
"... We introduce the language QML, a functional language for quantum computations on finite types. QML introduces quantum data and control structures, and integrates reversible and irreversible quantum computation. QML is based on strict linear logic, hence weakenings, which may lead to decoherence, hav ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We introduce the language QML, a functional language for quantum computations on finite types. QML introduces quantum data and control structures, and integrates reversible and irreversible quantum computation. QML is based on strict linear logic, hence weakenings, which may lead to decoherence, have to be explicit. We present an operational semantics of QML programs using quantum circuits, and a denotational semantics using superoperators.
Quantum Programming Languages: An Introductory Overview
, 2006
"... The present article gives an introductory overview of the novel field of quantum programming languages (QPLs) from a pragmatic perspective. First, after a short summary of basic notations of quantum mechanics, some of the goals and design issues are surveyed, which motivate the research in this area ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
The present article gives an introductory overview of the novel field of quantum programming languages (QPLs) from a pragmatic perspective. First, after a short summary of basic notations of quantum mechanics, some of the goals and design issues are surveyed, which motivate the research in this area. Then, several of the approaches are described in more detail. The article concludes with a brief survey of current research activities and a tabular summary of a selection of QPLs, which have been published so far.
The Quantum IO Monad
"... The Quantum IO monad is a purely functional interface to quantum programming implemented as a Haskell library. At the same time it provides a constructive semantics of quantum programming. The QIO monad separates reversible (i.e. unitary) and irreversible (i.e. probabilistic) computations and provid ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
The Quantum IO monad is a purely functional interface to quantum programming implemented as a Haskell library. At the same time it provides a constructive semantics of quantum programming. The QIO monad separates reversible (i.e. unitary) and irreversible (i.e. probabilistic) computations and provides a reversible let operation (ulet), allowing us to use ancillas (auxiliary qubits) in a modular fashion. QIO programs can be simulated either by calculating a probability distribution or by embedding it into the IO monad using the random number generator. As an example we present a complete implementation of Shor’s algorithm.
Concurrent quantum programming in Haskell
 In VII Congresso Brasileiro de Redes Neurais, Sessão de Computação Quântica
, 2005
"... This paper applies established techniques for concurrent programming in Haskell to the case of Concurrent Quantum Programming. The foundation of the approach is an extension to Concurrent Quantum Programming of the technique of “virtual values ” proposed by Amr Sabry for quantum programming in Haske ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
This paper applies established techniques for concurrent programming in Haskell to the case of Concurrent Quantum Programming. The foundation of the approach is an extension to Concurrent Quantum Programming of the technique of “virtual values ” proposed by Amr Sabry for quantum programming in Haskell. The basic idea is to encapsulate quantum values within MVars, the monadic variables that support thread synchronization and mutually exclusive accesses to shared references. In this way, quantum processes can be concurring to have access to quantum values and we will be applying the now established quantum programming paradigm of “control is classic, data is quantum ” to the concurrent and distributed quantum programming domain: the case in focus is that the control of concurrency is classical control, while shared data between quantum processes are quantum data. We illustrate the use of the proposed approach by programming sample algorithms for quantum teleportation and quantum cryptographic key distribution. 1.
Programming with a Quantum Stack
, 2007
"... This thesis presents the semantics of quantum stacks and a functional quantum programming language, LQPL. An operational semantics for LQPL based on quantum stacks in the form of a term logic is developed and used as an interpretation of quantum circuits. The operational semantics is then extend ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This thesis presents the semantics of quantum stacks and a functional quantum programming language, LQPL. An operational semantics for LQPL based on quantum stacks in the form of a term logic is developed and used as an interpretation of quantum circuits. The operational semantics is then extended to handle recursion and algebraic datatypes. Recursion and datatypes are not concepts found in quantum circuits, but both are generally required for modern programming languages. The language LQPL is introduced in a discussion and example format. Various example programs using both classical and quantum algorithms are used to illustrate features of the language. Details of the language, including handling of qubits, general data types and classical data are covered. The quantum stack machine is then presented. Supporting data for operation of the machine are introduced and the transitions induced by the machine’s instructions are given.
Implementing Grover’s Algorithm Using Linear Transformations in Haskell
"... In contrast to the usual approach to simulating quantum computing algorithms as a series of operations to be performed on a set of “qubits, ” we have used the Haskell programming language to implement Grover’s fast search algorithm as a composition of functional transformations applied, as a final s ..."
Abstract
 Add to MetaCart
In contrast to the usual approach to simulating quantum computing algorithms as a series of operations to be performed on a set of “qubits, ” we have used the Haskell programming language to implement Grover’s fast search algorithm as a composition of functional transformations applied, as a final step, to a set of qubits (a “quantum register”). In this approach, which has been (at least implicitly) suggested in the literature, but, as far as we have been able to determine, not been realized in a working program, the composition is constructed by means of common matrix manipulations and takes advantage of the associativity of matrix operations to eliminate complicated computations usually associated with simulating quantum computations. We present the crucial code sections, along with actual program results. We discuss the implications of our approach in the areas of quantum program simulation, algorithm analysis, algorithm construction, and construction of languages for quantum programming.