Lumaktaw sa pangunahing nilalaman

Panimula sa OpenQASM

Ang OpenQASM (open quantum assembly language), isang machine-independent na programming interface na compatible sa IBM® QPUs, ay isang imperative programming language para sa paglalarawan ng quantum circuits. Ginagamit ng OpenQASM ang quantum circuit model para ipahayag ang mga quantum program bilang mga ordered na sequence ng parameterized na operasyon (tulad ng mga gate, measurement, at reset) at real-time na classical computation. Bukod sa mga quantum algorithm, kayang ilarawan ng OpenQASM ang mga circuit na nilalayon para sa pag-characterize, pag-validate, o pag-debug ng mga quantum processor.

Habang umuunlad ang mga pangangailangan ng pagbuo ng QPU, pinalawak din ang listahan ng mga feature ng OpenQASM bilang tugon; ang pinakabagong bersyon, OpenQASM 3, ay nagsasama ng mga extension tulad ng classical feed-forward flow control, gate modifier, at pulse implementation.

Pinipili ang OpenQASM ng iba't ibang uri ng gumagamit dahil sa versatility nito. Nagbibigay ng mga halimbawa ang panimula ng papel ng OpenQASM 31:

"Kahit hindi high-level na language ang OpenQASM, maraming gumagamit ang gustong magsulat ng simpleng quantum circuit nang manu-mano gamit ang isang expressive na domain-specific language. Ang mga researcher na nag-aaral ng circuit compiling ay nangangailangan ng high-level na impormasyon na naka-record sa mga intermediate representation para gabayan ang mga optimization at synthesis algorithm. Mas gusto ng mga experimentalist ang kaginhawaan ng pagsulat ng mga circuit sa medyo mataas na antas ngunit kadalasang kailangang manu-manong baguhin ang timing o pulse-level na paglalarawan ng gate sa iba't ibang bahagi ng circuit. Ang mga hardware engineer na nagdidisenyo ng mga classical controller at waveform generator ay mas gusto ang mga language na praktikal para i-compile dahil sa mga hardware constraint at nagpapakita ng malinaw na circuit structure na maaaring samantalahin ng mga controller."

Ang OpenQASM ang karaniwang interchange format sa pagitan ng mga independyenteng quantum software tool. Para sa mga developer na mas gusto ang isang tool para sa circuit construction, isa pa para sa transpilation, at iba pa, ang OpenQASM ang lingua franca na nagsisilbing tulay sa pagitan nila.

Nagbibigay ang Qiskit SDK ng mga paraan para mag-convert sa pagitan ng OpenQASM at ng QuantumCircuit class (tingnan ang OpenQASM 2 at Qiskit at OpenQASM 3 at Qiskit para sa mga tagubilin).

Para sa karagdagang impormasyon, tingnan ang live specification ng OpenQASM.

Halimbawa ng OpenQASM code: cat state​


OPENQASM 3;
include "stdgates.inc";

const n = 3; // number of qubits
qubit[n] q; // a register 'q' of n qubits
bit[n] c; // a register 'c' of n classical bits

h q[0]; // Hadamard
for k in [0:n-1] {
cnot q[k], q[k+1]; // Controlled-NOT from control qubit q[k] to target qubit q[k+1]
}

c = measure q; // measure quantum register

Mga susunod na hakbang​

Mga Rekomendasyon

Footnotes​

  1. Andrew W. Cross et al. "OpenQASM 3: A broader and deeper quantum assembly language," ACM Transactions on Quantum Computing, Volume 3, Issue 3 (2022). https://doi.org/10.48550/arXiv.2104.14722 ↩