V srcu Dunaja
Sedež podjetja
Löwengasse 14 / Lokal 2
1030 Dunaj, Avstrija
Osnove sintakse OpenQASM
Razumevanje sintakse OpenQASM je ključnega pomena pri učenju pisanja kvantnih programov. Ker OpenQASM gradi na temeljih jezika QASM in se zgleduje po klasičnih jezikih, kot sta C in zbirni jezik, ima strukturiran nabor pravil za opredelitev obnašanja kvantnih računalnikov. To poglavje je posvečeno uvodu v osnovna sintaktična pravila OpenQASM.
Stavki: osnovni gradniki
V OpenQASM je stavek ukaz, ki narekuje izvedbo določenega dejanja. Program je v bistvu zbirka stavkov in vsak se mora končati s podpičjem (;), ki označuje njegov zaključek.
Oblikovanje stavkov
Za boljšo berljivost lahko zaporedje stavkov zapišete v ločenih vrsticah:
statement1;
statement2;
statement3;
ali v isti vrstici:
statement1; statement2; statement3; // Although valid, this is less readable
Priporočljivo je uporabljati prvi način, saj izboljša preglednost kode.
Eksperiment: preprost program OpenQASM
To je celoten program, ki prikazuje več stavkov OpenQASM, od katerih vsak izvede svojo kvantno operacijo. 12345678
// PhotonQ Experiment: A Simple OpenQASM Program [^8]
OPENQASM 2.0; // Specifies the OpenQASM version [^1]
include "qelib1.inc"; // Includes the standard library [^2]
// Declaration of quantum and classical registers
qreg qubits[2]; // Defines a quantum register with two qubits [^3]
creg ans[2]; // Defines a classical register with two bits [^4]
// Quantum gate application
h qubits[0]; // Applies a Hadamard gate to the first qubit [^5]
x qubits[1]; // Applies a Pauli-X gate to the second qubit [^6]
// Measure the qubit and save the result in the classical bit
measure qubits[0] -> ans[0]; // Measurement command [^7]
measure qubits[1] -> ans[1]; // Measurement command [^7]
Dejanja, ki jih izvedejo ti stavki, bodo podrobneje razložena v poznejših poglavjih.
Prazni znaki: za OpenQASM nepomembni
OpenQASM obravnava vse prazne znake, kot so presledki, tabulatorji in nove vrstice, kot nepomembne. To pomeni, da oblikovanje ne vpliva na kvantne operacije.
Neupoštevanje praznih znakov
Ta primera kode kažeta, da prazni znaki ne spremenijo logike programa:
qreg qubits[2]; h qubits[0]; // Compact but valid
qreg qubits[2]; h qubits[0]; // Spread out, and still valid
Identifikatorji: poimenovanje v OpenQASM
V OpenQASM so identifikatorji uporabniško določena imena za spremenljivke, registre in druge entitete. Da so veljavni, morajo ustrezati nekaj preprostim pravilom:
- Začeti se morajo z malo črko.
- Vsebujejo lahko le alfanumerične znake in podčrtaje (
_). - Ne smejo sovpadati z rezervirano ključno besedo.
Veljavni primeri: q, c, q0, q_, q_0.
Neveljavni primeri: Q, C, Q0, _Q, 0_q.
Upoštevajte, da OpenQASM razlikuje med velikimi in malimi črkami: identifikatorja q_a in q_A predstavljata različni entiteti.
Ko boste nadaljevali s tem vodičem, vam bodo te osnove sintakse prešle v kri in kmalu boste z OpenQASM izražali kompleksne kvantne algoritme.