OpenQASM

OpenQASM
Ostatnia wersja 3,0 (5 listopada 2020 r)
Licencja Licencja Apache

OpenQASM (Open Quantum Assembly Language), język tłumaczenia wolny od rozwoju kwantowego  ; jest rodzajem języka pośredniego przeznaczonego do nauczania informatyki kwantowej.

Język został stworzony i opublikowany w 2017 roku w artykule na temat Arxiv  : Open Quantum Assembly Language autorstwa Andrew W. Crossa, Leva S. Bishopa, Johna A. Smolina, Jay M. Gambetta

Kod źródłowy referencyjna implementacja został wydany jako część IBM Qiskit Quantum software . Zostanie to wykorzystane w kwantowej platformie obliczeniowej w chmurze IBM Q Experience .

OpenQASM to język opisu sprzętu, ale w wersji dla komputerów kwantowych .

Przykład

Oto przykład kodu źródłowego OpenQASM z jego oficjalnej biblioteki.

Program dodaje do siebie dwie czterobitowe liczby .

// 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];

Zobacz też

Uwagi i odniesienia

  1. Wersja 3.0  " ,5 listopada 2020 r(dostęp 11 listopada 2020 )
  2. „  https://api.github.com/repos/QISKit/openqasm  ” (dostęp: 6 marca 2019 r. )
  3. „Streszczenie” języka Open Quantum Assembly Language autorstwa Andrew W. Crossa, Leva S. Bishopa, Johna A. Smolina, Jay M. Gambetta on ArXiv
  4. Informacje na stronie Github