Quantum Framework
Q#
Q# is Microsoft's domain-specific language for quantum programming, designed to express quantum algorithms at a high level with built-in support for quantum data types, operations, and functions. The Azure Quantum Development Kit integrates Q# with Python and Jupyter notebooks. Q# targets both simulation and Azure Quantum hardware providers including IonQ, Quantinuum, and Rigetti.
Overview
Maintainer
Microsoft
Language(s)
Version
1.x
Supported Architectures
Cloud Platforms
Installation
pip install qsharp azure-quantum # VS Code extension: # "Microsoft Quantum Development Kit" from the marketplace
Requires Python 3.9+ and .NET 8 SDK (for Q# compilation). The VS Code extension provides syntax highlighting, IntelliSense, and integrated circuit visualization. Azure Quantum workspace credentials are required for hardware access.
Bell State Example
A Bell state (maximally entangled two-qubit state) is the canonical first circuit for any quantum framework.
import qsharp
# Inline Q# within Python
result = qsharp.eval("""
open Microsoft.Quantum.Diagnostics;
operation BellState() : (Result, Result) {
use (q1, q2) = (Qubit(), Qubit());
H(q1);
CNOT(q1, q2);
return (M(q1), M(q2));
}
""")
# Run on Azure Quantum
from azure.quantum import Workspace
from azure.quantum.qiskit import AzureQuantumProviderCloud Access
Q# targets Azure Quantum exclusively for hardware access. Create a Workspace in the Azure Portal, then connect via `azure.quantum.Workspace`. Azure Quantum provides access to IonQ, Quantinuum, Rigetti, and Pasqal hardware through a unified billing model. Credits and quotas vary by provider.
Provider Compatibility
| Provider | Access Method | Notes |
|---|---|---|
| Azure Quantum (native) | azure-quantum SDK | Unified billing; Azure Credits apply to all providers on the platform |
| IonQ (via Azure) | azure-quantum target: ionq.* | Access ionq.harmony and ionq.forte through Azure Quantum workspace |
| Quantinuum (via Azure) | azure-quantum target: quantinuum.* | H-Series systems available; syntax compilation via Quantinuum TKET |
| Rigetti (via Azure) | azure-quantum target: rigetti.* | Ankaa and Aspen systems via Azure; requires Quil transpilation |


