Nel cuore di Vienna
Sede centrale
Löwengasse 14 / Lokal 2
1030 Vienna, Austria
Elementi essenziali della sintassi OpenQASM
Comprendere la sintassi di OpenQASM è di fondamentale importanza quando si impara a scrivere programmi quantistici. Poiché OpenQASM si basa sulle fondamenta di QASM e trae ispirazione da linguaggi classici come C e Assembly, possiede un insieme strutturato di regole per definire il comportamento dei computer quantistici. Questo capitolo è dedicato all'introduzione delle regole sintattiche di base di OpenQASM.
Le istruzioni: i mattoni fondamentali
In OpenQASM, una istruzione è un comando che determina una specifica azione da eseguire. Un programma è essenzialmente una raccolta di istruzioni, e ciascuna deve terminare con un punto e virgola (;) per segnarne la conclusione.
Formattare le istruzioni
È possibile scrivere una serie di istruzioni su righe separate per una migliore leggibilità:
statement1;
statement2;
statement3;
oppure sulla stessa riga:
statement1; statement2; statement3; // Although valid, this is less readable
Si consiglia di utilizzare il primo metodo per migliorare la chiarezza del codice.
Esperimento: un semplice programma OpenQASM
Questo è un programma completo che mostra più istruzioni OpenQASM, ciascuna delle quali esegue una distinta operazione quantistica. 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]
Le azioni eseguite da queste istruzioni verranno approfondite nei capitoli successivi.
Spazi bianchi: un non-problema per OpenQASM
OpenQASM considera irrilevanti tutti i caratteri di spaziatura, come spazi, tabulazioni e a capo. Ciò significa che le operazioni quantistiche non sono influenzate dalla formattazione.
Ignorare gli spazi bianchi
Questi esempi di codice dimostrano che gli spazi bianchi non cambiano la logica di un programma:
qreg qubits[2]; h qubits[0]; // Compact but valid
qreg qubits[2]; h qubits[0]; // Spread out, and still valid
Identificatori: i nomi in OpenQASM
In OpenQASM, gli identificatori sono nomi definiti dall'utente per variabili, registri e altre entità. Per essere validi, devono rispettare alcune semplici regole:
- Iniziare con una lettera minuscola.
- Contenere solo caratteri alfanumerici e trattini bassi (
_). - Non coincidere con una parola chiave riservata.
Esempi validi: q, c, q0, q_, q_0.
Esempi non validi: Q, C, Q0, _Q, 0_q.
Tieni presente che OpenQASM distingue tra maiuscole e minuscole; identificatori come q_a e q_A rappresentano entità diverse.
Man mano che prosegui in questa guida, questi fondamenti sintattici diventeranno una seconda natura, e presto utilizzerai OpenQASM per esprimere algoritmi quantistici complessi.