Q#: Enabling scalable quantum computing and development with a high-level domain-specific language
arXiv:1803.00652 · doi:10.1145/3183895.3183901
Abstract
Quantum computing exploits quantum phenomena such as superposition and entanglement to realize a form of parallelism that is not available to traditional computing. It offers the potential of significant computational speed-ups in quantum chemistry, materials science, cryptography, and machine learning. The dominant approach to programming quantum computers is to provide an existing high-level language with libraries that allow for the expression of quantum programs. This approach can permit computations that are meaningless in a quantum context; prohibits succinct expression of interaction between classical and quantum logic; and does not provide important constructs that are required for quantum programming. We present Q#, a quantum-focused domain-specific language explicitly designed to correctly, clearly and completely express quantum algorithms. Q# provides a type system, a tightly constrained environment to safely interleave classical and quantum computations; specialized syntax, symbolic code manipulation to automatically generate correct transformations of quantum operations, and powerful functional constructs which aid composition.
11 pages, no figures, REVTeX
References in corpus (7)
- Elucidating Reaction Mechanisms on Quantum Computers
- Efficient Bayesian Phase Estimation
- ScaffCC: Scalable Compilation and Analysis of Quantum Programs
- Robust Calibration of a Universal Single-Qubit Gate-Set via Robust Phase Estimation
- Practical approximation of single-qubit unitaries by single-qubit quantum Clifford and T circuits
- Efficient synthesis of probabilistic quantum circuits with fallback
- Models of quantum computation and quantum programming languages
Cited by in corpus (64)
- Strawberry Fields: A Software Platform for Photonic Quantum Computing
- Qulacs: a fast and versatile quantum circuit simulator for research purpose
- TensorCircuit: a Quantum Software Framework for the NISQ Era
- Yao.jl: Extensible, Efficient Framework for Quantum Algorithm Design
- Statistical Assertions for Validating Patterns and Finding Bugs in Quantum Programs
- Recent advances for quantum classifiers
- Bugs in Quantum Computing Platforms: An Empirical Study
- Quantum Software Engineering: Roadmap and Challenges Ahead
- A Deductive Verification Framework for Circuit-building Quantum Programs
- Partial Compilation of Variational Algorithms for Noisy Intermediate-Scale Quantum Machines
- On Testing Quantum Programs
- Quantum Neural Network Classifiers: A Tutorial
- Quantum Computer Architecture: Towards Full-Stack Quantum Accelerators
- Formal Verification of Quantum Programs: Theory, Tools and Challenges
- Applying Grover's Algorithm to Hash Functions: A Software Perspective
- Teaching Quantum Computing through a Practical Software-driven Approach: Experience Report
- symQV: Automated Symbolic Verification of Quantum Programs
- Quantum Annealing-Based Software Components: An Experimental Case Study with SAT Solving
- Twist: Sound Reasoning for Purity and Entanglement in Quantum Programs
- Quantitative Robustness Analysis of Quantum Programs (Extended Version)
- Tower: Data Structures in Quantum Superposition
- Toward Automatic Verification of Quantum Programs
- Enabling Dataflow Optimization for Quantum Programs
- Analyzing Quantum Programs with LintQ: A Static Analysis Framework for Qiskit
- A tutorial introduction to quantum circuit programming in dependently typed Proto-Quipper
- Modular Software for Real-Time Quantum Control Systems
- Partial Equivalence Checking of Quantum Circuits
- Symbolic Execution for Quantum Error Correction Programs
- Integration of Quantum Accelerators with High Performance Computing -- A Review of Quantum Programming Tools
- Algebraic Reasoning of Quantum Programs via Non-idempotent Kleene Algebra
- Developing Programming Assignments for Teaching Quantum Computing and Quantum Programming
- Assertion-Based Optimization of Quantum Programs
- Uncomputation in the Qrisp high-level Quantum Programming Framework
- Optimizing Gate Decomposition for High-Level Quantum Programming
- On the Principles of Differentiable Quantum Programming Languages
- On the need for effective tools for debugging quantum programs
- Gottesman Types for Quantum Programs
- Teaching Quantum Computing using Microsoft Quantum Development Kit and Azure Quantum
- The T-Complexity Costs of Error Correction for Control Flow in Quantum Computation
- Enabling Accuracy-Aware Quantum Compilers using Symbolic Resource Estimation
- Enabling High Performance Debugging for Variational Quantum Algorithms using Compressed Sensing
- Distributed Quantum Computing with QMPI
- Qsun: an open-source platform towards practical quantum machine learning applications
- Reqomp: Space-constrained Uncomputation for Quantum Circuits
- Quantum circuit debugging and sensitivity analysis via local inversions
- Comparative Analysis of Quantum and Classical Support Vector Classifiers for Software Bug Prediction: An Exploratory Study
- Functional Simulation of Real-Time Quantum Control Software
- Initial-State Dependent Optimization of Controlled Gate Operations with Quantum Computer
- Quantum types: going beyond qubits and quantum gates
- Methods for Classically Simulating Noisy Networked Quantum Architectures
- Locality-aware Pauli-based computation for local magic state preparation
- Quantifying Grover speed-ups beyond asymptotic analysis
- Automated Verification of Silq Quantum Programs using SMT Solvers
- Sized Types for low-level Quantum Metaprogramming
- Quantum Software Ecosystem Design
- Enabling Multi-threading in Heterogeneous Quantum-Classical Programming Models
- A Practical Quantum Hoare Logic with Classical Variables, I
- Quantum Programming Without the Quantum Physics
- Programming tools for Analogue Quantum Computing in the High-Performance Computing Context -- A Review
- Quantum Circuits Are Just a Phase
- Compositional Quantum Control Flow with Efficient Compilation in Qunity
- Hoare meets Heisenberg: A Lightweight Logic for Quantum Programs
- Formal Verification of Quantum Ancilla Safety
- Quantum Arithmetic Algorithms: Implementation, Resource Estimation, and Comparison