OpenQASM
OpenQASM | |
---|---|
Розробник | IBM Researchd |
Останній реліз | 3.0 (5 листопада 2020)[1] |
Ліцензія | Apache Software License 2.0d[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];
Примітки
- ↑ Release 3.0 — 2020.
- ↑ https://api.github.com/repos/QISKit/openqasm
- ↑ а б Cross, Andrew W.; Bishop, Lev S.; Smolin, John A.; Gambetta, Jay M. Open Quantum Assembly Language. arXiv:1707.03429.
- ↑ qiskit-openqasm: OpenQASM specification, International Business Machines, 4 липня 2017, архів оригіналу за 2 квітня 2017, процитовано 6 липня 2017
- ↑ openqasm/adder.qasm at master · QISKit/openqasm · GitHub.
Джерела
- OpenQASM [Архівовано 6 грудня 2019 у Wayback Machine.] on GitHub
- п
- о
- р
Основи | |
---|---|
Передача інформації | Квантовий канал[en] (Квантова пропускна здатність[en] · Класична пропускна здатність[en] · Класична пропускна здатність зі сплутаністю[en]) · Квантова криптографія (Квантове розповсюдження ключа · BB84 · E91 · BB92 · SARG04(інші мови) · Триетапний протокол квантової криптографії[en]) · Квантова телепортація · Надщільне кодування[en] · ЛОКК-перетворення · Очищення сплутаності |
Квантові алгоритми | Алгоритм Грувера · Алгоритм Дойча — Йожи · Алгоритм Шора · Задача Саймона · Задача Фейнмана · Алгоритм оцінки фази(інші мови) · Квантове перетворення Фур'є(інші мови) · Квантовий відпал · Алгоритмічне охолодження(інші мови) · Квантове сортування |
Складність квантових обчислень | |
Моделі квантових обчислень | Квантова схема (Квантовий вентиль · CNOT · Вентиль Тоффолі · Вентиль Фредкіна) · Однобічний квантовий комп'ютер (Кластерний стан) · Адіабатичні квантові обчислення · Топологічний квантовий комп'ютер |
Проблема декогеренції | Квантова корекція помилок · Симплектичний код · Квантова корекція помилок зі сплутаністю · Квантовий згортальний код |
Програмування |
Фізичні реалізації | |
Квантова оптика | Квантова електродинаміка в оптичних резонаторах[en] · Лінійний оптичний квантовий комп'ютер · Бозонний семплінг · Протокол KLM · Квантова електродинаміка в схемах[en] |
---|---|
Надхолодні атоми | Квантовий комп'ютер на йонних пастках[en] · Оптична ґратка[en] |
Спіновий квантовий комп'ютер | Квантовий ЯМР-комп'ютер[en] · Квантовий комп'ютер Кейна[en] · Квантовий комп'ютер Лосса — Ді Вінченцо[en] · Азотно-заміщена вакансія · Електрон на гелії[en] |
Надпровідний квантовий комп'ютер[en] |
Відомі науковці | |