OpenQASM

Open Quantum Assembly Language (OpenQASM; udtales open kazm[1]) er en mellemkode for kvanteinstruktioner. Sproget blev først beskrevet i en artikel offentliggjort i juli 2017,[1] og kildekode blev frigjort som en del af IBMs Quantum Information Software Kit (Qiskit) til anvendelse af deres IBM Q Experience cloud kvantedatabehandlingsplatform.[2] Sproget har ligheder med traditionel hardware beskrivelsessprog såsom Verilog.

Eksempler

Det følgende er et eksempel på OpenQASM kildekode fra det officielle bibliotek. Programmet adderer to fire-bit tal sammen.[3]

// quantum ripple-carry adder from Cuccaro et al, quant-ph/0410184OPENQASM 2.0;include "qelib1.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; }qreg cin[1];qreg a[4];qreg b[4];qreg cout[1];creg ans[5];// set input statesx a[0]; // a = 0001x b;    // b = 1111// add a to b, storing result in bmajority cin[0],b[0],a[0];majority a[0],b[1],a[1];majority a[1],b[2],a[2];majority a[2],b[3],a[3];cx a[3],cout[0];unmaj a[2],b[3],a[3];unmaj a[1],b[2],a[2];unmaj a[0],b[1],a[1];unmaj cin[0],b[0],a[0];measure b[0] -> ans[0];measure b[1] -> ans[1];measure b[2] -> ans[2];measure b[3] -> ans[3];measure cout[0] -> ans[4];

Kilder/referencer

Eksterne henvisninger