OpenQASM 3 language features¶
Below is a list of the OpenQASM 3
language features, separated into basic OpenQASM 3 language features.
For more details on these capabilities, see the OpenQASM 3.X Live Specification .
Key:
❌ Not supported
🟡 Partial support
✅ Supported
Feature |
Support |
Comments |
---|---|---|
comments |
✅ |
|
QASM version string |
✅ |
|
|
✅ |
|
unicode names |
✅ |
|
|
🟡 |
Only supports physical qubits, and no arrays. |
|
✅ |
|
|
✅ |
|
|
✅ |
Some support for comparisons against integers and casting. |
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
❌ |
|
Aliasing: let |
❌ |
|
register concatenation |
❌ |
|
casting |
🟡 |
Casting between arrays of bits, int, and bool is supported |
|
✅ |
|
|
❌ |
|
|
✅ |
|
|
❌ |
|
|
✅ |
|
|
✅ |
|
|
❌ |
|
Built-in |
✅ |
|
|
✅ |
No support for non-basis gates |
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
✅ |
|
|
✅ |
|
bit operations |
✅ |
|
boolean operations |
✅ |
|
arithmetic expressions |
❌ |
|
comparisons |
✅ |
|
|
✅ |
|
|
✅ |
|
|
❌ |
|
|
🟡 |
Discrete sets and negative stepping is not supported. |
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
🟡 |
Only for certain extern subroutines exposed by backend devices. It is currently not possible for clients to submit these. |
|
❌ |
|
|
❌ |
|
|
❌ |
|
|
❌ |