Quantum assembly language for extended quantum circuits
Official 3.1.0 release of the OpenQASM specification. Including support for the switch-case statement.
Live version (and tagged release versions) visible here: https://openqasm.com/ See release notes for details.
openqasm3
package by @jakelishman in https://github.com/openqasm/openqasm/pull/453
CompoundStatement
and unify visitation of Statement
lists by @Swordcat in https://github.com/openqasm/openqasm/pull/497
switch
to ANTLR and reference AST by @jakelishman in https://github.com/openqasm/openqasm/pull/492
source
directory by @braised-babbage in https://github.com/openqasm/openqasm/pull/511
pow
modifiers by @jakelishman in https://github.com/openqasm/openqasm/pull/529
Full Changelog: https://github.com/openqasm/openqasm/compare/3.0.0...spec/v3.1.0
Official 3.0.0 release of the OpenQASM specification.
Live version (and tagged release versions) visible here: https://openqasm.com/
Blog post with extended description of features and changes: https://medium.com/qiskit/whats-in-the-latest-openqasm-specification-c0cdf4313a1a
Features:
A broader family of computation with classical logic. Introducing classical control flow, instructions, and data types to define circuits that include real-time computations on classical data. A kernel mechanism allows for opaque references to generic classical computations acting upon run-time data.
Explicit timing, Introducing a flexible mechanism to describe design intent of instruction scheduling while remaining independent of specific durations determined by gate calibrations. This enables, for example, dynamical decoupling while retaining a gate-level description of a circuit.
Embedded pulse-level definitions. An extensible mechanism to attach low-level definitions to gates. This is particularly relevant to calibration tasks which optimize pulse parameters using error amplification sequences most easily described at the gate level.
Live doc https://qiskit.github.io/openqasm
OpenQASM 2.x documentation and examples.