63,539 research outputs found
Quantum Programming Made Easy
We present IQu, namely a quantum programming language that extends Reynold's
Idealized Algol, the paradigmatic core of Algol-like languages. IQu combines
imperative programming with high-order features, mediated by a simple type
theory. IQu mildly merges its quantum features with the classical programming
style that we can experiment through Idealized Algol, the aim being to ease a
transition towards the quantum programming world. The proposed extension is
done along two main directions. First, IQu makes the access to quantum
co-processors by means of quantum stores. Second, IQu includes some support for
the direct manipulation of quantum circuits, in accordance with recent trends
in the development of quantum programming languages. Finally, we show that IQu
is quite effective in expressing well-known quantum algorithms.Comment: In Proceedings Linearity-TLLA 2018, arXiv:1904.0615
A Language and Hardware Independent Approach to Quantum-Classical Computing
Heterogeneous high-performance computing (HPC) systems offer novel
architectures which accelerate specific workloads through judicious use of
specialized coprocessors. A promising architectural approach for future
scientific computations is provided by heterogeneous HPC systems integrating
quantum processing units (QPUs). To this end, we present XACC (eXtreme-scale
ACCelerator) --- a programming model and software framework that enables
quantum acceleration within standard or HPC software workflows. XACC follows a
coprocessor machine model that is independent of the underlying quantum
computing hardware, thereby enabling quantum programs to be defined and
executed on a variety of QPUs types through a unified application programming
interface. Moreover, XACC defines a polymorphic low-level intermediate
representation, and an extensible compiler frontend that enables language
independent quantum programming, thus promoting integration and
interoperability across the quantum programming landscape. In this work we
define the software architecture enabling our hardware and language independent
approach, and demonstrate its usefulness across a range of quantum computing
models through illustrative examples involving the compilation and execution of
gate and annealing-based quantum programs
Quantum Computing and Quantum Algorithms
The field of quantum computing and quantum algorithms is studied from the ground up. Qubits and their quantum-mechanical properties are discussed, followed by how they are transformed by quantum gates. From there, quantum algorithms are explored as well as the use of high-level quantum programming languages to implement them. One quantum algorithm is selected to be implemented in the Qiskit quantum programming language. The validity and success of the resulting computation is proven with matrix multiplication of the qubits and quantum gates involved
Alternation in Quantum Programming: From Superposition of Data to Superposition of Programs
We extract a novel quantum programming paradigm - superposition of programs -
from the design idea of a popular class of quantum algorithms, namely quantum
walk-based algorithms. The generality of this paradigm is guaranteed by the
universality of quantum walks as a computational model. A new quantum
programming language QGCL is then proposed to support the paradigm of
superposition of programs. This language can be seen as a quantum extension of
Dijkstra's GCL (Guarded Command Language). Surprisingly, alternation in GCL
splits into two different notions in the quantum setting: classical alternation
(of quantum programs) and quantum alternation, with the latter being introduced
in QGCL for the first time. Quantum alternation is the key program construct
for realizing the paradigm of superposition of programs.
The denotational semantics of QGCL are defined by introducing a new
mathematical tool called the guarded composition of operator-valued functions.
Then the weakest precondition semantics of QGCL can straightforwardly derived.
Another very useful program construct in realizing the quantum programming
paradigm of superposition of programs, called quantum choice, can be easily
defined in terms of quantum alternation. The relation between quantum choices
and probabilistic choices is clarified through defining the notion of local
variables. We derive a family of algebraic laws for QGCL programs that can be
used in program verification, transformations and compilation. The expressive
power of QGCL is illustrated by several examples where various variants and
generalizations of quantum walks are conveniently expressed using quantum
alternation and quantum choice. We believe that quantum programming with
quantum alternation and choice will play an important role in further
exploiting the power of quantum computing.Comment: arXiv admin note: substantial text overlap with arXiv:1209.437
- …
