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

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

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

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

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

Примітки

Джерела

OpenQASM on GitHub