Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a quantum programming language
Mathematical Structures in Computer Science
A Functional Quantum Programming Language
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Quantum programming languages: survey and bibliography
Mathematical Structures in Computer Science
Linear regions are all you need
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Quipper: a scalable quantum programming language
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
Quantum computers represent a novel kind of programmable hardware with properties and restrictions that are distinct from those of classical computers. We investigate how some existing abstractions and programming language features developed within the programming languages community can be adapted to expose the unique capabilities of quantum computers to programmers while at the same time allowing them to manage the new and unfamiliar constraints of programming a quantum device. We introduce QuaFL, a statically typed domain-specific programming language for writing high-level definitions of algorithms that can be compiled into logical quantum circuits. The primary purpose of QuaFL is to support programmers in defining high-level yet physically realizable quantum algorithms and in helping them make informed decisions about implementation trade-offs. QuaFL allows programmers to use high-level data structures including integers, fixed point reals, and arrays within quantum algorithms, and to explicitly define superpositions and unitary transformations on data. The QuaFL type system allows programmers to distinguish between classical and quantum portions of a program, uses a variant of linear types and an orthogonality checking algorithm to ensure the quantum portions are physically realizable, and provides type size annotations that can facilitate automated computation of the quantities of quantum resources that will be necessary to run the compiled program (i.e., a logical quantum circuit).