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/0410184
OPENQASM 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 states
x a[0]; // a = 0001
x b; // b = 1111
// add a to b, storing result in b
majority 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
- ^ a b Open Quantum Assembly Language, Andrew W. Cross, Lev S. Bishop, John A. Smolin, Jay M. Gambetta
- ^ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04, hentet 2017-07-06
- ^ "openqasm/adder.qasm at master · QISKit/openqasm · GitHub".
Eksterne henvisninger
- OpenQASM on GitHub
|
Medier brugt på denne side
Forfatter/Opretter: Glosser.ca, Licens: CC BY-SA 3.0
Bloch sphere; a geometrical representation of a two-level quantum system. Rendered with Asymptote.