Share to: share facebook share twitter share wa share telegram print page

OpenQASM


Infotaula de llenguatge de programacióOpenQASM
Tipusquantum programming language (en) Tradueix Modifica el valor a Wikidata
DesenvolupadorApache
Darrera versió estable3.0 ()
3.0.0 () Modifica el valor a Wikidata
Codi fontCodi font Modifica el valor a Wikidata
LlicènciaLlicència Apache, versió 2.0 Modifica el valor a Wikidata
Pàgina webopenqasm.com Modifica el valor a Wikidata

Open Quantum Assembly Language (OpenQASM; pronunciat open kazm) és un llenguatge de programació dissenyat per descriure circuits i algoritmes quàntics per a la seva execució en ordinadors quàntics.[1]

Llengua

Està dissenyat per ser una representació intermèdia que poden utilitzar els compiladors de nivell superior per comunicar-se amb el maquinari quàntic, i permet la descripció d'una àmplia gamma d'operacions quàntiques, així com el control de flux clàssic de prealimentació basat en els resultats de les mesures.[2]

El llenguatge inclou un mecanisme per descriure la sincronització explícita de les instruccions i permet adjuntar definicions de baix nivell a les portes per a tasques com la calibració. OpenQASM no està pensat per a la computació clàssica d'ús general, i les implementacions de maquinari del llenguatge poden no admetre tota la manipulació de dades descrita a l'especificació. S'espera que els compiladors per a OpenQASM admetin una àmplia gamma d'operacions clàssiques per a constants de temps de compilació, però la compatibilitat amb aquestes operacions en valors de temps d'execució pot variar entre implementacions.[3]

El llenguatge es va descriure per primera vegada en un article publicat el juliol de 2017, i es va publicar una implementació de codi font de referència com a part del Quantum Information Software Kit (Qiskit) d'IBM per al seu ús amb la seva plataforma de computació quàntica al núvol IBM Quantum Experience. El llenguatge té qualitats similars als llenguatges de descripció de maquinari tradicionals com ara Verilog.

OpenQASM defineix la seva versió al capdavant d'un fitxer font com un número, com a la declaració:[4]

OPENQASM 3;

El nivell de les implementacions originals publicades d'OpenQASM és OpenQASM 2.0. La versió 3.0 de l'especificació és l'actual i es pot veure al repositori d'OpenQASM a GitHub.

Exemples

El següent és un exemple de codi font d'OpenQASM de la biblioteca oficial. El programa afegeix dos nombres de quatre bits.[5]

/*
 * quantum ripple-carry adder
 * Cuccaro et al, quant-ph/0410184
 */
OPENQASM 3;
include "stdgates.inc";

gate majority a, b, c {
    cx c, b;
    cx c, a;
    ccx a, b, c;
}

gate unmaj a, b, c {
    ccx a, b, c;
    cx c, a;
    cx a, b;
}

qubit[1] cin;
qubit[4] a;
qubit[4] b;
qubit[1] cout;
bit[5] ans;
uint[4] a_in = 1;  // a = 0001
uint[4] b_in = 15; // b = 1111
// initialize qubits
reset cin;
reset a;
reset b;
reset cout;

// set input states
for i in [0: 3] {
  if(bool(a_in[i])) x a[i];
  if(bool(b_in[i])) x b[i];
}
// add a to b, storing result in b
majority cin[0], b[0], a[0];
for i in [0: 2] { majority a[i], b[i + 1], a[i + 1]; }
cx a[3], cout[0];
for i in [2: -1: 0] { unmaj a[i], b[i + 1], a[i + 1]; }
unmaj cin[0], b[0], a[0];
measure b[0:3] -> ans[0:3];
measure cout[0] -> ans[4];

Referències

  1. «Introduction to OpenQASM» (en anglès). [Consulta: 2 setembre 2025].
  2. «openqasm/openqasm» (en anglès), 31-08-2025. [Consulta: 2 setembre 2025].
  3. «OpenQASM Live Specification» (en anglès). [Consulta: 26 desembre 2022].
  4. Sarkar, Soumyadip. «Exploring Operations in OpenQASM» (en anglès), 02-04-2025. [Consulta: 2 setembre 2025].
  5. «openqasm/adder.qasm at master · openqasm/openqasm · GitHub» (en anglès). GitHub, 29-01-2022.
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya