Langkau ke kandungan utama

Jadual ciri OpenQASM 3

Berikut adalah senarai ciri bahasa OpenQASM 3.

Untuk maklumat lanjut mengenai keupayaan ini, lihat Spesifikasi Langsung OpenQASM 3.X.

Kunci:

  • โŒ Tidak disokong
  • ๐ŸŸก Sokongan separa
  • โœ… Disokong

Makna tanda "disokong" sepenuhnya bergantung pada lajur:

  • Qiskit SDK: Ciri ini boleh dihurai oleh qiskit.qasm3.loads (dengan menggunakan sambungan qiskit-qasm3-import), direpresentasikan dalam QuantumCircuit, dan dieksport ke OpenQASM 3 oleh qiskit.qasm3.dumps.

  • IBM Qiskit Runtime: Litar yang mengandungi ciri Qiskit yang berkaitan boleh dilaksanakan dengan jayanya pada perkakasan melalui IBMยฎ Qiskit Runtime.

Makna "sokongan separa" biasanya bergantung pada nota yang dipautkan.

nota

Kaedah paling biasa untuk menghantar litar ke IBM Qiskit Runtime adalah dengan mencipta litar dalam antara muka ruang-Python ke Qiskit SDK. Litar yang dibina dan dihantar dengan cara ini tidak perlu dimuatkan dari fail OpenQASM 3 ke dalam Qiskit SDK.

Jika anda tidak menggunakan OpenQASM 3 secara langsung, anda boleh menggunakan ciri yang disokong untuk representasi dalam Qiskit SDK, eksport ke OpenQASM 3, dan penghantaran ke IBM Qiskit Runtime dengan selamat. Ini termasuk ciri yang tidak boleh dimuatkan oleh Qiskit SDK dari OpenQASM 3.

Ciri OpenQASM 3Ciri Qiskit SDKQiskit SDKIBM Qiskit RuntimeNota
ulasanโœ…โœ…1
QASM vstringโœ…โœ…1
include๐ŸŸกโŒ1, 7
nama unicodeโœ…โœ…
qubitQubit dan QuantumRegisterโœ…๐ŸŸก2
bitClbit dan ClassicalRegisterโœ…โœ…3
boolexpr.Var dan ungkapan klasik๐ŸŸกโœ…4
intโŒโœ…4
uintexpr.Var dan ungkapan klasik๐ŸŸกโœ…4
floatexpr.Var dan ungkapan klasik๐ŸŸก๐ŸŸก4
angleTersirat, sebagai parameter gateโŒ๐ŸŸก4
complexโŒโŒ4
constโŒโŒ4
pi/ฯ€/tau/ฯ„/euler/โ„‡Dilipat-pemalar ke dalam parameter gateโœ…โœ…
Pengaliasan: letDaftar kuantum dan klasik๐ŸŸกโŒ5
penggabungan daftarDaftar kuantum dan klasik๐ŸŸกโŒ5
penghantaranUngkapan klasik expr.Cast๐ŸŸก๐ŸŸก4
durationโŒโŒ
durationofโŒโŒ
ns/ยตs/us/ms/s/dtTempoh delay dan boxโœ…โœ…6
stretchexpr.Stretch๐ŸŸก๐ŸŸก4, 6
delayDelay/QuantumCircuit.delayโœ…โœ…6
barrierBarrier/QuantumCircuit.barrierโœ…โœ…
boxBoxOp/QuantumCircuit.boxโœ…โŒ6
Built-in UUGate/QuantumCircuit.uโœ…โœ…
gate๐ŸŸก๐ŸŸก7
gphaseQuantumCircuit.global_phase๐ŸŸกโŒ7
ctrl @/ negctrl @AnnotatedOperation๐ŸŸกโŒ7
inv @AnnotatedOperation๐ŸŸกโŒ7
pow(k) @AnnotatedOperation๐ŸŸกโŒ7
resetReset/QuantumCircuit.resetโœ…โœ…
measureMeasure/QuantumCircuit.measureโœ…โœ…
operasi bit๐ŸŸกโœ…4
operasi boolean๐ŸŸกโœ…4
ungkapan aritmetik๐ŸŸก๐ŸŸก4
perbandingan๐ŸŸกโœ…4
ifQuantumCircuit.if_testโœ…โœ…8
elseQuantumCircuit.if_testโœ…โœ…8
else ifQuantumCircuit.if_testโœ…โŒ8
gelung forQuantumCircuit.for_loop๐ŸŸกโŒ8
gelung whileQuantumCircuit.while_loopโœ…โŒ8
continueQuantumCircuit.continue_loop๐ŸŸกโŒ8
breakQuantumCircuit.break_loop๐ŸŸกโŒ8
returnโŒโŒ
externโŒโŒ
subrutin def (klasik)โŒโŒ
subrutin def (kuantum)โŒโŒ
inputQuantumCircuit.add_inputโœ…๐ŸŸก4, 9
outputโŒโŒ

Notaโ€‹

  1. Ciri-ciri program OpenQASM 3 ini tidak memberi kesan ke atas pelaksanaan dan Qiskit membuangnya sebagai sebahagian daripada menghurai fail. Fail yang menggunakannya boleh dihantar tetapi tidak akan memberi kesan. Untuk fail include, stdgates.inc kini disokong sebagai input ke Qiskit, dan pelaksanaan backend sentiasa memerlukan litar yang telah dikompil ke Seni Bina Set Arahan (ISA) backend, di mana fail include tidak relevan.
  1. Qiskit SDK menyokong penghuraian dan pembuangan fail OpenQASM 3 dengan sebarang deklarasi qubit. Untuk pelaksanaan pada perkakasan, hanya litar yang ditakrifkan dalam sebutan qubit perkakasan (contohnya, $0) yang sah. Qiskit SDK secara automatik mengeluarkan OpenQASM 3 dalam sebutan pengecam qubit-perkakasan yang disokong jika litar telah dikompil untuk backend dengan maklumat tataletak.
  1. Deklarasi pemboleh ubah bertaip bit dan bit[n] dalam Qiskit SDK sepadan dengan deklarasi Clbit dan ClassicalRegister.
  1. Sehingga Julai 2025, Qiskit SDK boleh merepresentasikan pemboleh ubah tempatan bagi set jenis terhad, boleh merepresentasikan banyak operasi runtime pada objek ini, dan menyokong pengeksportan ke OpenQASM 3. Walau bagaimanapun, Qiskit SDK (melalui qiskit-qasm3-import v0.6.0) tidak menyokong penghuraian fail OpenQASM 3 yang mengandungi deklarasi pemboleh ubah, dan mempunyai sokongan yang sangat terhad untuk menghurai ungkapan pemboleh ubah. Secara umum, kebanyakan yang boleh direpresentasikan Qiskit dalam sistem ungkapannya boleh dilaksanakan pada perkakasan litar dinamik yang sesuai, walaupun ungkapan itu belum boleh dihurai oleh Qiskit SDK. Lihat dokumentasi Qiskit bagi modul qiskit.circuit.classical untuk maklumat terkini.
  1. Qiskit SDK boleh merepresentasikan pengaliasan daftar untuk daftar kuantum dan klasik, tetapi penggunaan pengaliasan daftar klasik sangat tidak digalakkan. Kebanyakan ungkapan pada daftar klasik tidak berfungsi dengan alias, dan daftar klasik teralias tidak disokong untuk pelaksanaan pada perkakasan. Penghurai OpenQASM 3 Qiskit boleh menyelesaikan pernyataan alias let yang mengikat hasil penggabungan daftar.
  1. Qiskit SDK menyokong kelewatan eksplisit melalui QuantumCircuit.delay, dan kotak litar (QuantumCircuit.box) juga boleh mempunyai tempoh eksplisit. Tempoh ini boleh merangkumi ungkapan klasik pemboleh ubah stretch. Qiskit SDK (sehingga Julai 2025 melalui qiskit-qasm3-import v0.6.0) tidak menyokong penghuraian deklarasi jenis duration atau jenis stretch dari fail OpenQASM 3. Perkakasan mempunyai sokongan terhad untuk tempoh termasuk stretch.
  1. Litar mesti dikompil ke ISA backend untuk dijalankan pada perkakasan IBM. Ini menghalang definisi gate tersuai dan konstruk peringkat lebih tinggi seperti pengubah gate (seperti inv @) daripada sah untuk pelaksanaan pada perkakasan secara verbatim, tetapi proses transpile menyelesaikannya menjadi litar ISA yang sah. Qiskit SDK (sehingga Julai 2025, melalui qiskit-qasm3-import v0.6.0) akan menilai pengubah gate dengan segera semasa penghuraian, jadi ini tidak akan ketara dalam QuantumCircuit yang terhasil, berpotensi dengan kos runtime.
  1. Qiskit SDK boleh merepresentasikan aliran kawalan berstruktur dan mengeksportnya ke OpenQASM 3. Pernyataan continue dan break secara teknikal boleh direpresentasikan oleh Qiskit, tetapi tidak disokong dengan baik walaupun dalam Qiskit SDK. Gelung for dalam Qiskit v2.1.0 tidak disokong dengan baik. Aliran kawalan bersarang (seperti if di dalam if lain, atau pernyataan else if) tidak layak untuk pelaksanaan pada perkakasan.
  1. Qiskit SDK menyokong pengisytiharan mana-mana jenis klasik yang disokong sebagai pemboleh ubah input pada litar. Pemboleh ubah sedemikian tidak layak untuk pelaksanaan pada perkakasan pada masa ini, dan tidak boleh dimuatkan oleh pengimport OpenQASM 3 Qiskit. Objek Parameter yang tidak terikat yang wujud dalam QuantumCircuit dieksport sebagai pemboleh ubah input float[64]. Pilihan konfigurasi runtime tertentu boleh membolehkan pelaksanaan litar sedemikian pada beberapa backend.

Langkah seterusnyaโ€‹

Cadangan
Source: IBM Quantum docs โ€” updated 27 Apr 2026
English version on doQumentation โ€” updated 7 Mei 2026
This translation based on the English version of 11 Mac 2026