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

βœ…

include

βœ…

unicode names

βœ…

qubit

🟑

Only supports physical qubits, and no arrays.

bit

βœ…

bool

βœ…

int

βœ…

Some support for comparisons against integers and casting.

uint

❌

float

❌

angle

❌

complex

❌

const

❌

pi/Ο€/tau/Ο„/euler/ℇ

❌

Aliasing: let

❌

register concatenation

❌

casting

🟑

Casting between arrays of bits, int, and bool is supported

duration

βœ…

durationof

❌

ns/Β΅s/us/ms/s/dt

βœ…

stretch

❌

delay

βœ…

barrier

βœ…

box

❌

Built-in U

βœ…

gate

βœ…

No support for non-basis gates

gphase

❌

ctrl @/ negctrl @

❌

inv @

❌

pow(k) @

❌

reset

βœ…

measure

βœ…

bit operations

βœ…

boolean operations

βœ…

arithmetic expressions

❌

comparisons

βœ…

if

βœ…

else

βœ…

else if

❌

for loops

🟑

Discrete sets and negative stepping is not supported.

while loops

❌

continue

❌

break

❌

return

❌

extern

🟑

Only for certain extern subroutines exposed by backend devices. It is currently not possible for clients to submit these.

def subroutines (classical)

❌

def subroutines (quantum)

❌

input

❌

output

❌