Nel cuore di Vienna

    Sede centrale

    Löwengasse 14 / Lokal 2

    1030 Vienna, Austria

    Seguici su

    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.

    Footnotes

    1. Documentazione sulla stringa di versione

    2. Documentazione su include

    3. Documentazione sui registri quantistici

    4. Documentazione sui registri classici

    5. Documentazione sulla porta di Hadamard

    6. Documentazione sulla porta X di Pauli

    7. Documentazione sulla misurazione

    8. Esperimento: un semplice programma OpenQASM

    Versions-String
    Include

    Link

    GitHub

    Telegram

    Facebook

    Instagram

    Note legali

    Copyright © 2024 Netsnek, Florian Herbert Kleber IT & Werbeagentur Nico Schett. All rights reserved.