November 18, 2002
The rapid progress of computer technology has been accompanied by a corresponding evolution of software development, from hardwired components and binary machine code to high level programming languages, which allowed to master the increasing hardware complexity and fully exploit its potential. This paper investigates, how classical concepts like hardware abstraction, hierarchical programs, data types, memory management, flow of control and structured programming can be used in quantum computing. The experimental language QCL will be introduced as an example, how elements like irreversible functions, local variables and conditional branching, which have no direct quantum counterparts, can be implemented, and how non-classical features like the reversibility of unitary transformation or the non-observability of quantum states can be accounted for within the framework of a procedural programming language.
Similar papers 1
March 8, 2001
It is becoming increasingly clear that, if a useful device for quantum computation will ever be built, it will be embodied by a classical computing machine with control over a truly quantum subsystem, this apparatus performing a mixture of classical and quantum computation. This paper investigates a possible approach to the problem of programming such machines: a template high level quantum language is presented which complements a generic general purpose classical language...
April 28, 2023
Quantum programming languages aim to reduce the burden of manipulating hardware-level logic gates when implementing a quantum algorithm. A hurdle to this goal is the difficulty of expressing control flow, such as branching and iteration, that depends on the value of data in quantum superposition. To implement algorithms for factorization, search, and simulation that contain control flow, quantum languages often require the use of bit-level logic gates as opposed to the high-l...
September 19, 2012
A remarkable difference between quantum and classical programs is that the control flow of the former can be either classical or quantum. One of the key issues in the theory of quantum programming languages is defining and understanding quantum control flow. A functional language with quantum control flow was defined by Altenkirch and Grattage [\textit{Proc. LICS'05}, pp. 249-258]. This paper extends their work, and we introduce a general quantum control structure by defining...
March 5, 2023
The field of quantum computing is at an exciting time where we are constructing novel hardware, evaluating algorithms, and finding out what works best. As qubit technology grows and matures, we need to be ready to design and program larger quantum computer systems. An important aspect of systems design is layered abstractions to reduce complexity and guide intuition. Classical computer systems have built up many abstractions over their history including the layers of the hard...
June 28, 2022
Instead of producing quantum languages that are fit for current quantum computers, we build a language from standard classical assembler and augment it with quantum capabilities so that quantum algorithms become a subset of it. This paves the way for the development of hybrid algorithms directly from classical software, which is not feasible on today's hardware but might inspire future quantum programmers.
June 8, 2010
We present a basic high-level structures used for developing quantum programming languages. The presented structures are commonly used in many existing quantum programming languages and we use quantum pseudo-code based on QCL quantum programming language to describe them. We also present the implementation of introduced structures in GNU Octave language for scientific computing. Procedures used in the implementation are available as a package quantum-octave, providing a libra...
April 7, 2008
Quantum computer programming is emerging as a new subject domain from multidisciplinary research in quantum computing, computer science, mathematics (especially quantum logic, lambda calculi, and linear logic), and engineering attempts to build the first non-trivial quantum computer. This paper briefly surveys the history, methods, and proposed tools for programming quantum computers circa late 2007. It is intended to provide an extensive but non-exhaustive look at work leadi...
April 4, 2011
Quantum computation constitutes a rapidly expanding subfield of computer science. Development quantum algorithms is facilitated by the availability of efficient quantum programming languages, and a plethora of approaches has been already suggested in the literature, ranging from GUI-based simple tools to elaborate standalone programming languages. In this paper we propose a novel paradigm called Quantum Embeddable Circuit Technique (QuECT) that allows a programmer to embed a ...
September 5, 2019
Quantum computing is an emerging computational paradigm that leverages the laws of quantum mechanics to perform elementary logic operations. Existing programming models for quantum computing were designed with fault-tolerant hardware in mind, envisioning standalone applications. However, near-term quantum computers are susceptible to noise which limits their standalone utility. To better leverage limited computational strengths of noisy quantum devices, hybrid algorithms have...
December 29, 2010
The goal of the presented paper is to provide an introduction to the basic computational models used in quantum information theory. We review various models of quantum Turing machine, quantum circuits and quantum random access machine (QRAM) along with their classical counterparts. We also provide an introduction to quantum programming languages, which are developed using the QRAM model. We review the syntax of several existing quantum programming languages and discuss their ...