Results 1 
6 of
6
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
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.
1 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
 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. 1.1
Hoare Logic for Quantum Programs ∗
, 2009
"... Hoare logic is a foundation of axiomatic semantics of classical programs and it provides effective proof techniques for reasoning about correctness of classical programs. To offer similar techniques for quantum program verification and to build a logical foundation of programming methodology for qua ..."
Abstract
 Add to MetaCart
Hoare logic is a foundation of axiomatic semantics of classical programs and it provides effective proof techniques for reasoning about correctness of classical programs. To offer similar techniques for quantum program verification and to build a logical foundation of programming methodology for quantum computers, we develop a fullfledged Hoare logic for both partial and total correctness of quantum programs. It is proved that this logic is (relatively) complete by exploiting the power of weakest preconditions and weakest liberal preconditions for quantum programs.