OpenQASM — Вікіпедія

OpenQASM
Розробник IBM Researchd
Останній реліз 3.0 (5 листопада 2020)[1]
Ліцензія Apache License, Version 2.0[d][2]
Репозиторій вихідного коду github.com/QISKit/openqasm
Вебсайт openqasm.com

OpenQASM (англ. Open Quantum Assembly Language - мова квантового асемблера з відкритим кодом, вимовляється open kazm[3]) - це проміжне представлення[en] для інструкцій квантового комп'ютера. Мова вперше була описана у статті, опублікованій у липні 2017 року,[3] а зразкова реалізація вихідного коду була випущена як частина набору програмного забезпечення Quantum Information Software (Qiskit) для використання з хмарною платформою квантових обчислень IBM Q Experience.[4] Мова має якості, подібні до традиційних мов опису апаратного забезпечення, таких як Verilog.

OpenQASM визначає свою версію на початку вихідного файлу як дійсне число, як у декларації:

OPENQASM 2.0; 

Версія оригінальних опублікованих реалізацій OpenQASM (наприклад, Qiskit, інфра) - це OpenQASM 3.0.

Приклади[ред. | ред. код]

Далі подано приклад вихідного коду OpenQASM з офіційної бібліотеки. Програма додає два чотирирозрядних числа.[5]

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

Примітки[ред. | ред. код]

  1. Release 3.0 — 2020.
  2. https://api.github.com/repos/QISKit/openqasm
  3. а б Cross, Andrew W.; Bishop, Lev S.; Smolin, John A.; Gambetta, Jay M.. «Open Quantum Assembly Language». arXiv:1707.03429. 
  4. qiskit-openqasm: OpenQASM specification, International Business Machines, 4 липня 2017, архів оригіналу за 2 квітня 2017, процитовано 6 липня 2017
  5. openqasm/adder.qasm at master · QISKit/openqasm · GitHub.

Джерела[ред. | ред. код]