Open Quantum Assembly Language (OpenQASM; udtales open kazmOpen Quantum Assembly Language, Andrew W. Cross, Lev S. Bishop, John A. Smolin, Jay M. Gambetta) er en mellemkode for kvanteinstruktioner. Sproget blev først beskrevet i en artikel offentliggjort i juli 2017, og kildekode blev frigjort som en del af IBMs Quantum Information Software Kit (Qiskit) til anvendelse af deres IBM Q Experience cloud kvantedatabehandlingsplatform. 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.
// 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; qreg a; qreg b; qreg cout; creg ans; // set input states x a; // a = 0001 x b; // b = 1111 // add a to b, storing result in b majority cin,b,a; majority a,b,a; majority a,b,a; majority a,b,a; cx a,cout; unmaj a,b,a; unmaj a,b,a; unmaj a,b,a; unmaj cin,b,a; measure b -> ans; measure b -> ans; measure b -> ans; measure b -> ans; measure cout -> ans;
Kilder/referencer
Eksterne henvisninger OpenQASM on GitHub
Kategori:Programmeringssprog Kategori:Kvantedatabehandling Kategori:Kvanteinformatik