Квантове програмування є набором комп'ютерних мов програмування, які дозволяють запис [en] з використанням конструкцій високого рівня. Завдання квантових мов не полягає у тому, щоб надати інструмент для програмістів, а в тому, щоб надати інструменти для дослідників, щоб зрозуміти краще, як працюють квантові обчислення і як формально доводити коректність квантових алгоритмів.
Можна виділити дві основні групи квантових мов програмування: імперативні квантові мови програмування і функціональні квантові мови програмування. Найбільш відомими представниками першої групи є QCL і LanQ. Ведеться робота з розробки функціональних мов програмування для квантових обчислень. Приклади включають QPL Селінджера, і Haskell-подібну мову QML, розроблену Алтенкірчом і Ґретажем. Квантові мови програмування високого рівня, засновані на лямбда-численні, були запропоновані ван Тондером, Селінджером і Валіроном Аріґі і Довеком.
Оглядова стаття Саймона Ґея надає інформацію про стан досліджень і всеосяжну бібліографію ресурсів про квантове програмування станом на 2007 рік.
Імперативні квантові мови програмування
Квантовий псевдокод
Квантовий псевдокод, запропонований Е. Кнілом, є першою формалізованою мовою для опису [en]. Він був введений, і, крім того, був тісно пов'язаний з моделлю квантової машини під назвою квантова машина з довільним доступом. Квантова машина з довільним доступом є віртуальною моделлю апаратних засобів для обчислень, і може виявитися корисною для інтерпретації квантових мов програмування. Моделі таких машин дозволяють вільно чергувати унітарне перетворення і вимірювання за допомогою квантового пристрою під керуванням класичного комп'ютера. Квантовий пристрій міститиме велике, але скінченне число індивідуально адресованих квантових бітів, так само, як класичний чип пам'яті RAM містить велику кількість бітів. Обчисленнями управлятиме класичний комп'ютер посилаючи послідовність команд, що мають форму "застосувати" унітарне перетворення U до кубітів I і J або "виміряти" кубіт I. Квантовий пристрій виконує ці інструкції і надає доступ до результатів вимірювань.
Квантова мова обчислень
Квантова мова обчислень (англ. Quantum Computation Language) — одна з перших реалізованих квантових мов програмування. Її синтаксис нагадує синтаксис мови програмування C, а її класичні типи даних схожі на примітивні типи даних в C. Можна поєднувати класичний код і квантовий код в тій же програмі.
Базовим вбудованим квантовим типом даних в QCL є квантовий регістр куреґ (англ. qureg). Його можна інтерпретувати як масив кубітів (квантових бітів).
qureg x1[2]; // 2-кубітний квантовий регістр x1 qureg x2[2]; // 2-кубітний квантовий регістр x2 H(x1); // Операція Адамара на x1 H(x2[1]); // Операція Адамара на першому кубіті регістру x2
Оскільки інтерпретатор QCL використовує бібліотеку qlib для моделювання, за внутрішнім станом квантової машини під час виконання квантової програми можна спостерігати.
qcl> dump : STATE: 4 / 32 кубіт зайнято, 28 / 32 qubits вільно 0.35355 |0> + 0.35355 |1> + 0.35355 |2> + 0.35355 |3> + 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11>
Операція дампу відрізняється від вимірювання, оскільки вона не впливає на стан квантової машини і може бути реалізована тільки за допомогою імітатора.
Стандартна бібліотека QCL надає стандартні квантові оператори, які використовуються в квантових алгоритмах, такі як:
- Контрольоване "ні" з великою кількістю цільових кубітів,
- Операція Адамара на багатьох кубітах,
- Синтаксичний аналіз і контрольована фаза.
Найважливішою особливістю QCL є підтримка визначених користувачем операторів і функцій. Як і в сучасних мовах програмування, можна визначити нові операції, які можуть бути використані для маніпулювання квантовими даними. Наприклад:
operator diffuse (qureg q) { H(q); // перетворення Адамара Not(q); // інвертувати q CPhase(pi, q); // Обертати якщо q=1111.. !Not(q); // скасувати інверсію !H(q); // скасувати перетворення Адамара }
визначає оператор інверсії щодо середнього значення, що використовується в алгоритмі Грувера. Це дозволяє визначати алгоритми на вищому рівні абстракції і розширити бібліотеку функцій, доступних для програмістів.
Синтаксис
- Типи даних
- Квантові - qureg, quvoid, Const, quscratch, qucond
- Класичні - int (цілий), real (дійсний), complex (комплексний), boolean (логічний), string (рядковий), vector (масив-вектор), matrix (матриця), tensor (тензор)
- Типи функцій
- Куфункти - псевдо-класичні оператори. Можна тільки змінити перестановку базисних станів.
- Оператори - загальні унітарні оператори. Можна змінити амплітуду.
- Процедури - всередині цієї функції можна викликати вимірювання, вивід інформації та дамп (скидання). Процедури не є зворотними.
- Вбудовані функції
- Квантові
- Куфункти - Fanout, Swap, Perm2, Perm4, Perm8, Not, CNot
- Оператори - матриця 2х2, матриця 4x4, матриця 8x8, Rot, Mix, H, CPhase, SqrtNot, X, Y, Z, S, T
- Процедури - вимірювання, дамп, скидання стану
- Класичні
- Арифметика - sin (синус), cos (косинус), tan (тангенс), log (логарифм), sqrt (корінь квадратний), ...
- Комплексні - Re (взяття дійсної частини), Im (взяття уявної частини), conj (операція спряження).
- Квантові
Мова Q
Мова Q — це друга реалізована імперативна квантова мова програмування.
Мова Q була реалізована як розширення мови програмування C++. Вона надає класи для основних квантових операцій, таких як QHadamard, QFourier, QNot і QSwap, які є похідними від базового класу QOP. Нові оператори можуть бути визначені за допомогою класового механізму C++.
Квантова пам'ять представлена класом Qreg.
Qreg x1; // однокубітний квантовий регістр з початковим значенням 0 Qreg x2(2,0); // двокубітний квантовий регістр з початковим значенням 0
Процес обчислення виконується за допомогою вбудованого імітатора. Дисперсне середовище може бути змодельоване з використанням параметрів імітатора.
Квантова Мова Обачних Команд
Квантова Мова Обачних Команд (qGCL, англ. Quantum Guarded Command Language) була означена П. Зуліані в його кандидатській дисертації. Вона базується на [en], створеній Едсґером Дейкстрою.
Її можна охарактеризувати як «мову опису квантових програм».
Інші
У вересні 2017 року на конференції Ignite компанія Microsoft представила квантову мову програмування власної розробки. На той час мова не мала назви. Окрім мови програмування компанія запропонувала і дві версії симулятора квантового комп'ютера: один працюватиме на локальному комп'ютері, інший — в хмарі Microsoft Azure. Мова та симулятор будуть доступні в наступних випусках Microsoft Visual Studio.
Функційні квантові мови програмування
За останні кілька років була запропонована низка квантових мов програмування на основі парадигми функційного програмування. Функційні мови програмування добре підходять для доведення коректності програм.
QFC і QPL
QFC і QPL — дві тісно пов'язані квантові мови програмування означені Пітером Селінджером. Вони відрізняються лише в їхньому синтаксисі: QFC використовує синтаксис блок-схем, в той час як QPL використовує текстовий синтаксис. Ці мови мають класичну систему керування, але можуть працювати на квантових або класичних даних. Селінджер дає денотаційну семантику для цих мов у категорії [en].
QML
QML — це Haskell-подібна квантова мова програмування, створена Алтенкірчом і Ґретажом. На відміну від мови Селінджера QPL ця мова виконує дублювання, а не викидання, квантової інформації як примітивну операцію. Під дублюванням у даному контексті розуміється операція, яка перетворює у , і її не слід плутати з неможливою операцією клонування; автори стверджують, що це схоже на те, як спільне використання моделюється в класичних мовах. QML також вводить як класичні, так і квантові оператори керування, тоді як більшість інших мов покладаються на класичне керування.
Операційна семантика для QML дається в термінах квантових схем, тоді як денотаційна семантика представлена в термінах [en]. Доведено, що вони узгоджуються. Обидві операційні і денотаційні семантики були реалізовані (класично) на мові Haskell.
Квантові лямбда-числення
Квантові лямбда-числення є доповненням до класичного лямбда-числення, введеним Алонзо Черчом і Кліні в 1930-х роках. Мета квантових лямбда-числень — розширення квантових мов програмування теорією функцій вищого порядку.
Перша спроба визначити квантове лямбда-числення була зроблена Філіпом Мейміном у 1996 році Його лямбда-q-числення досить потужне, щоб виразити будь-які квантові обчислення. Проте, ця мова може ефективно розв'язувати NP-повні задачі, і, тому виглядає суворо строгішою, ніж стандартні квантові обчислювальні моделі (наприклад, квантова машина Тюрінґа або модель квантових схем). Тому лямбда-q-числення Мейміна, швидше за все, неможливо буде реалізувати на фізичному пристрої.
У 2003 році Андре ван Тондер означив розширення лямбда-числення, що підходить для доведення коректності квантових програм. Він також надав реалізацію на мові програмування Scheme.
У 2004 році Селінджер і Валірон означили строго типізоване лямбда-числення для квантових обчислень із системою типів, заснованою на [en].
Quipper
Мова Quipper була опублікована в 2013 році. Її реалізовано у вигляді вбудованої мови, використовуючи Haskell як мову-господаря. З цієї причини квантові програми, написані на Quipper, записуються в Haskell, використовуючи надані бібліотеки. Наприклад, цей код реалізує підготовку суперпозиції
import Quipper spos :: Bool -> Circ Qubit spos b = do q <- qinit b r <- hadamard q return r
Квантові набори розробки програмного забезпечення
Qiskit
Проект з відкритим кодом, розроблений IBM. Створення та маніпуляція квантовими схемами здійснюється за допомогою Python, Swift або JavaScript. Результати отримують або за допомогою симуляторів, що працюють на власному пристрої користувача, симуляторів, що надаються IBM, або прототипів квантових пристроїв, що надаються IBM. Окрім можливості створювати програми з використанням базових квантових операцій, в пакеті Qiskit Aqua доступні алгоритми вищого рівня. Qiskit базується на стандарті OpenQASM для представлення квантових ланцюгів і підтримуватиме контроль на рівні імпульсів квантових систем, як це визначено стандартом OpenPulse.
Див також
Примітки
- Jarosław Adam Miszczak. High-level Structures in Quantum Computing. Процитовано 12 грудня 2015.
- Bernhard Omer. . Архів оригіналу за 8 Жовтня 2003. Процитовано 16 Квітня 2016.
- Hynek Mlnařík. . Архів оригіналу за 20 Травня 2016. Процитовано 16 Квітня 2016.
- Пітер Селінджер, "На шляху до квантової мови програмування" [ 30 Квітня 2016 у Wayback Machine.], Mathematical Structures in Computer Science(Математичні структури в інформатиці) 14(4):527-586, 2004.
- . Архів оригіналу за 31 Березня 2008. Процитовано 16 Квітня 2016.
- T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto, QML: Функціональна мова програмування Quantum [ 10 липня 2006 у Wayback Machine.]
- Андре ван Тондер, "Лямбда-числення для квантових обчислень", SIAM J. Comput., 33(5), 1109–1135. (27 стор.), 2004. Також доступна за посиланням arXiv:quant-ph/0307150 [ 20 Грудня 2015 у Wayback Machine.]
- Peter Selinger and Benoît Valiron, "A lambda calculus for quantum computation with classical control" [ 22 Квітня 2016 у Wayback Machine.], Mathematical Structures in Computer Science 16(3):527-552, 2006.
- Pablo Arrighi, Gilles Dowek, "Лінійно-алгебраїчне лямбда-числення. високий порядок, кодування і збіжність" [ 19 Березня 2017 у Wayback Machine.], 2006
- . Архів оригіналу за 22 Квітня 2016. Процитовано 16 Квітня 2016.
- . Архів оригіналу за 8 Жовтня 2003. Процитовано 16 Квітня 2016.
- . Архів оригіналу за 20 червня 2009. Процитовано 16 квітня 2016.
- . FossBytes. 25 вересня 2017. Архів оригіналу за 27 Вересня 2017. Процитовано 27 Вересня 2017.
- . Архів оригіналу за 26 вересня 2007. Процитовано 16 квітня 2016.
- Джонатан Ґретаж (англ. Jonathan Grattage), QML: Компілятор функціональної квантової мови програмування — англ. A Functional Quantum Programming Language (compiler) [ 5 березня 2016 у Wayback Machine.], 2005—2008
- Філіп Меймін (англ. Philip Maymin), [[https://web.archive.org/web/20170319035706/https://arxiv.org/abs/quant-ph/9612052 Архівовано 19 березня 2017 у Wayback Machine.] [ 19 березня 2017 у Wayback Machine.] [ 19 Березня 2017 у Wayback Machine.] Розширення лямбда-числення для вираження рандомізованих і квантомізованих алгоритмів (англ. "Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms")], 1996
- André van Tonder. . Архів оригіналу за 5 Березня 2016. Процитовано 16 Квітня 2016.
- . Архів оригіналу за 30 Квітня 2016. Процитовано 16 Квітня 2016.
- Alexander S. Green, Peter LeFanu Lumsdaine, Neil J. Ross, Peter Selinger, Benoît Valiron. . Архів оригіналу за 30 Квітня 2016. Процитовано 16 Квітня 2016.
- Alexander S. Green, Peter LeFanu Lumsdaine, Neil J. Ross, Peter Selinger, Benoît Valiron (2013). . Архів оригіналу за 15 Лютого 2017. Процитовано 16 Квітня 2016.
- . Архів оригіналу за 21 Січня 2021. Процитовано 15 Січня 2021.
- . Архів оригіналу за 10 жовтня 2019. Процитовано 18 вересня 2018.
- McKay, David C.; Alexander, Thomas; Bello, Luciano; Biercuk, Michael J.; Bishop, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gomez, Juan; Hush, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nation, Paul; Paulovicks, Brent; Winston, Erick; Wood, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). Qiskit Backend Specifications for OpenQASM and OpenPulse Experiments. arXiv:1809.03452 [quant-ph].
Посилання
- 5-й Міжнародний семінар з квантової фізики і логіки [ 20 Вересня 2010 у Wayback Machine.]
- 4-й Міжнародний семінар з квантової мов програмування [ 22 Листопада 2018 у Wayback Machine.]
- 3-й Міжнародний семінар з квантової мов програмування [ 10 Вересня 2018 у Wayback Machine.]
- 2-й Міжнародний семінар з квантової мов програмування [ 10 Вересня 2018 у Wayback Machine.]
- Бібліографія квантових мов програмування [ 18 Лютого 2020 у Wayback Machine.] (оновлено у травні 2007 року)
- на Quantiki
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Kvantove programuvannya ye naborom komp yuternih mov programuvannya yaki dozvolyayut zapis en z vikoristannyam konstrukcij visokogo rivnya Zavdannya kvantovih mov ne polyagaye u tomu shob nadati instrument dlya programistiv a v tomu shob nadati instrumenti dlya doslidnikiv shob zrozumiti krashe yak pracyuyut kvantovi obchislennya i yak formalno dovoditi korektnist kvantovih algoritmiv Mozhna vidiliti dvi osnovni grupi kvantovih mov programuvannya imperativni kvantovi movi programuvannya i funkcionalni kvantovi movi programuvannya Najbilsh vidomimi predstavnikami pershoyi grupi ye QCL i LanQ Vedetsya robota z rozrobki funkcionalnih mov programuvannya dlya kvantovih obchislen Prikladi vklyuchayut QPL Selindzhera i Haskell podibnu movu QML rozroblenu Altenkirchom i Gretazhem Kvantovi movi programuvannya visokogo rivnya zasnovani na lyambda chislenni buli zaproponovani van Tonderom Selindzherom i Valironom Arigi i Dovekom Oglyadova stattya Sajmona Geya nadaye informaciyu pro stan doslidzhen i vseosyazhnu bibliografiyu resursiv pro kvantove programuvannya stanom na 2007 rik Imperativni kvantovi movi programuvannyaKvantovij psevdokod Kvantovij psevdokod zaproponovanij E Knilom ye pershoyu formalizovanoyu movoyu dlya opisu en Vin buv vvedenij i krim togo buv tisno pov yazanij z modellyu kvantovoyi mashini pid nazvoyu kvantova mashina z dovilnim dostupom Kvantova mashina z dovilnim dostupom ye virtualnoyu modellyu aparatnih zasobiv dlya obchislen i mozhe viyavitisya korisnoyu dlya interpretaciyi kvantovih mov programuvannya Modeli takih mashin dozvolyayut vilno cherguvati unitarne peretvorennya i vimiryuvannya za dopomogoyu kvantovogo pristroyu pid keruvannyam klasichnogo komp yutera Kvantovij pristrij mistitime velike ale skinchenne chislo individualno adresovanih kvantovih bitiv tak samo yak klasichnij chip pam yati RAM mistit veliku kilkist bitiv Obchislennyami upravlyatime klasichnij komp yuter posilayuchi poslidovnist komand sho mayut formu zastosuvati unitarne peretvorennya U do kubitiv I i J abo vimiryati kubit I Kvantovij pristrij vikonuye ci instrukciyi i nadaye dostup do rezultativ vimiryuvan Kvantova mova obchislen Kvantova mova obchislen angl Quantum Computation Language odna z pershih realizovanih kvantovih mov programuvannya Yiyi sintaksis nagaduye sintaksis movi programuvannya C a yiyi klasichni tipi danih shozhi na primitivni tipi danih v C Mozhna poyednuvati klasichnij kod i kvantovij kod v tij zhe programi Bazovim vbudovanim kvantovim tipom danih v QCL ye kvantovij registr kureg angl qureg Jogo mozhna interpretuvati yak masiv kubitiv kvantovih bitiv qureg x1 2 2 kubitnij kvantovij registr x1 qureg x2 2 2 kubitnij kvantovij registr x2 H x1 Operaciya Adamara na x1 H x2 1 Operaciya Adamara na pershomu kubiti registru x2 Oskilki interpretator QCL vikoristovuye biblioteku qlib dlya modelyuvannya za vnutrishnim stanom kvantovoyi mashini pid chas vikonannya kvantovoyi programi mozhna sposterigati qcl gt dump STATE 4 32 kubit zajnyato 28 32 qubits vilno 0 35355 0 gt 0 35355 1 gt 0 35355 2 gt 0 35355 3 gt 0 35355 8 gt 0 35355 9 gt 0 35355 10 gt 0 35355 11 gt Operaciya dampu vidriznyayetsya vid vimiryuvannya oskilki vona ne vplivaye na stan kvantovoyi mashini i mozhe buti realizovana tilki za dopomogoyu imitatora Standartna biblioteka QCL nadaye standartni kvantovi operatori yaki vikoristovuyutsya v kvantovih algoritmah taki yak Kontrolovane ni z velikoyu kilkistyu cilovih kubitiv Operaciya Adamara na bagatoh kubitah Sintaksichnij analiz i kontrolovana faza Najvazhlivishoyu osoblivistyu QCL ye pidtrimka viznachenih koristuvachem operatoriv i funkcij Yak i v suchasnih movah programuvannya mozhna viznachiti novi operaciyi yaki mozhut buti vikoristani dlya manipulyuvannya kvantovimi danimi Napriklad operator diffuse qureg q H q peretvorennya Adamara Not q invertuvati q CPhase pi q Obertati yaksho q 1111 Not q skasuvati inversiyu H q skasuvati peretvorennya Adamara viznachaye operator inversiyi shodo serednogo znachennya sho vikoristovuyetsya v algoritmi Gruvera Ce dozvolyaye viznachati algoritmi na vishomu rivni abstrakciyi i rozshiriti biblioteku funkcij dostupnih dlya programistiv Sintaksis Tipi danih Kvantovi qureg quvoid Const quscratch qucond Klasichni int cilij real dijsnij complex kompleksnij boolean logichnij string ryadkovij vector masiv vektor matrix matricya tensor tenzor Tipi funkcij Kufunkti psevdo klasichni operatori Mozhna tilki zminiti perestanovku bazisnih staniv Operatori zagalni unitarni operatori Mozhna zminiti amplitudu Proceduri vseredini ciyeyi funkciyi mozhna viklikati vimiryuvannya vivid informaciyi ta damp skidannya Proceduri ne ye zvorotnimi Vbudovani funkciyi Kvantovi Kufunkti Fanout Swap Perm2 Perm4 Perm8 Not CNot Operatori matricya 2h2 matricya 4x4 matricya 8x8 Rot Mix H CPhase SqrtNot X Y Z S T Proceduri vimiryuvannya damp skidannya stanu Klasichni Arifmetika sin sinus cos kosinus tan tangens log logarifm sqrt korin kvadratnij Kompleksni Re vzyattya dijsnoyi chastini Im vzyattya uyavnoyi chastini conj operaciya spryazhennya Mova Q Mova Q ce druga realizovana imperativna kvantova mova programuvannya Mova Q bula realizovana yak rozshirennya movi programuvannya C Vona nadaye klasi dlya osnovnih kvantovih operacij takih yak QHadamard QFourier QNot i QSwap yaki ye pohidnimi vid bazovogo klasu QOP Novi operatori mozhut buti viznacheni za dopomogoyu klasovogo mehanizmu C Kvantova pam yat predstavlena klasom Qreg Qreg x1 odnokubitnij kvantovij registr z pochatkovim znachennyam 0 Qreg x2 2 0 dvokubitnij kvantovij registr z pochatkovim znachennyam 0 Proces obchislennya vikonuyetsya za dopomogoyu vbudovanogo imitatora Dispersne seredovishe mozhe buti zmodelovane z vikoristannyam parametriv imitatora Kvantova Mova Obachnih Komand Kvantova Mova Obachnih Komand qGCL angl Quantum Guarded Command Language bula oznachena P Zuliani v jogo kandidatskij disertaciyi Vona bazuyetsya na en stvorenij Edsgerom Dejkstroyu Yiyi mozhna oharakterizuvati yak movu opisu kvantovih program Inshi U veresni 2017 roku na konferenciyi Ignite kompaniya Microsoft predstavila kvantovu movu programuvannya vlasnoyi rozrobki Na toj chas mova ne mala nazvi Okrim movi programuvannya kompaniya zaproponuvala i dvi versiyi simulyatora kvantovogo komp yutera odin pracyuvatime na lokalnomu komp yuteri inshij v hmari Microsoft Azure Mova ta simulyator budut dostupni v nastupnih vipuskah Microsoft Visual Studio Funkcijni kvantovi movi programuvannyaZa ostanni kilka rokiv bula zaproponovana nizka kvantovih mov programuvannya na osnovi paradigmi funkcijnogo programuvannya Funkcijni movi programuvannya dobre pidhodyat dlya dovedennya korektnosti program QFC i QPL QFC i QPL dvi tisno pov yazani kvantovi movi programuvannya oznacheni Piterom Selindzherom Voni vidriznyayutsya lishe v yihnomu sintaksisi QFC vikoristovuye sintaksis blok shem v toj chas yak QPL vikoristovuye tekstovij sintaksis Ci movi mayut klasichnu sistemu keruvannya ale mozhut pracyuvati na kvantovih abo klasichnih danih Selindzher daye denotacijnu semantiku dlya cih mov u kategoriyi en QML QML ce Haskell podibna kvantova mova programuvannya stvorena Altenkirchom i Gretazhom Na vidminu vid movi Selindzhera QPL cya mova vikonuye dublyuvannya a ne vikidannya kvantovoyi informaciyi yak primitivnu operaciyu Pid dublyuvannyam u danomu konteksti rozumiyetsya operaciya yaka peretvoryuye ϕ displaystyle phi rangle u ϕ ϕ displaystyle phi rangle otimes phi rangle i yiyi ne slid plutati z nemozhlivoyu operaciyeyu klonuvannya avtori stverdzhuyut sho ce shozhe na te yak spilne vikoristannya modelyuyetsya v klasichnih movah QML takozh vvodit yak klasichni tak i kvantovi operatori keruvannya todi yak bilshist inshih mov pokladayutsya na klasichne keruvannya Operacijna semantika dlya QML dayetsya v terminah kvantovih shem todi yak denotacijna semantika predstavlena v terminah en Dovedeno sho voni uzgodzhuyutsya Obidvi operacijni i denotacijni semantiki buli realizovani klasichno na movi Haskell Kvantovi lyambda chislennya Kvantovi lyambda chislennya ye dopovnennyam do klasichnogo lyambda chislennya vvedenim Alonzo Cherchom i Klini v 1930 h rokah Meta kvantovih lyambda chislen rozshirennya kvantovih mov programuvannya teoriyeyu funkcij vishogo poryadku Persha sproba viznachiti kvantove lyambda chislennya bula zroblena Filipom Mejminom u 1996 roci Jogo lyambda q chislennya dosit potuzhne shob viraziti bud yaki kvantovi obchislennya Prote cya mova mozhe efektivno rozv yazuvati NP povni zadachi i tomu viglyadaye suvoro strogishoyu nizh standartni kvantovi obchislyuvalni modeli napriklad kvantova mashina Tyuringa abo model kvantovih shem Tomu lyambda q chislennya Mejmina shvidshe za vse nemozhlivo bude realizuvati na fizichnomu pristroyi U 2003 roci Andre van Tonder oznachiv rozshirennya lyambda chislennya sho pidhodit dlya dovedennya korektnosti kvantovih program Vin takozh nadav realizaciyu na movi programuvannya Scheme U 2004 roci Selindzher i Valiron oznachili strogo tipizovane lyambda chislennya dlya kvantovih obchislen iz sistemoyu tipiv zasnovanoyu na en Quipper Mova Quipper bula opublikovana v 2013 roci Yiyi realizovano u viglyadi vbudovanoyi movi vikoristovuyuchi Haskell yak movu gospodarya Z ciyeyi prichini kvantovi programi napisani na Quipper zapisuyutsya v Haskell vikoristovuyuchi nadani biblioteki Napriklad cej kod realizuye pidgotovku superpoziciyi import Quipper spos Bool gt Circ Qubit spos b do q lt qinit b r lt hadamard q return rKvantovi nabori rozrobki programnogo zabezpechennyaQiskit Dokladnishe Qiskit Proekt z vidkritim kodom rozroblenij IBM Stvorennya ta manipulyaciya kvantovimi shemami zdijsnyuyetsya za dopomogoyu Python Swift abo JavaScript Rezultati otrimuyut abo za dopomogoyu simulyatoriv sho pracyuyut na vlasnomu pristroyi koristuvacha simulyatoriv sho nadayutsya IBM abo prototipiv kvantovih pristroyiv sho nadayutsya IBM Okrim mozhlivosti stvoryuvati programi z vikoristannyam bazovih kvantovih operacij v paketi Qiskit Aqua dostupni algoritmi vishogo rivnya Qiskit bazuyetsya na standarti OpenQASM dlya predstavlennya kvantovih lancyugiv i pidtrimuvatime kontrol na rivni impulsiv kvantovih sistem yak ce viznacheno standartom OpenPulse Div takozhAlgoritmi kvantovoyi optimizaciyi Kvantove rozpovsyudzhennya klyucha Kvantovij procesorPrimitkiJaroslaw Adam Miszczak High level Structures in Quantum Computing Procitovano 12 grudnya 2015 Bernhard Omer Arhiv originalu za 8 Zhovtnya 2003 Procitovano 16 Kvitnya 2016 Hynek Mlnarik Arhiv originalu za 20 Travnya 2016 Procitovano 16 Kvitnya 2016 Piter Selindzher Na shlyahu do kvantovoyi movi programuvannya 30 Kvitnya 2016 u Wayback Machine Mathematical Structures in Computer Science Matematichni strukturi v informatici 14 4 527 586 2004 Arhiv originalu za 31 Bereznya 2008 Procitovano 16 Kvitnya 2016 T Altenkirch V Belavkin J Grattage A Green A Sabry J K Vizzotto QML Funkcionalna mova programuvannya Quantum 10 lipnya 2006 u Wayback Machine Andre van Tonder Lyambda chislennya dlya kvantovih obchislen SIAM J Comput 33 5 1109 1135 27 stor 2004 Takozh dostupna za posilannyam arXiv quant ph 0307150 20 Grudnya 2015 u Wayback Machine Peter Selinger and Benoit Valiron A lambda calculus for quantum computation with classical control 22 Kvitnya 2016 u Wayback Machine Mathematical Structures in Computer Science 16 3 527 552 2006 Pablo Arrighi Gilles Dowek Linijno algebrayichne lyambda chislennya visokij poryadok koduvannya i zbizhnist 19 Bereznya 2017 u Wayback Machine 2006 Arhiv originalu za 22 Kvitnya 2016 Procitovano 16 Kvitnya 2016 Arhiv originalu za 8 Zhovtnya 2003 Procitovano 16 Kvitnya 2016 Arhiv originalu za 20 chervnya 2009 Procitovano 16 kvitnya 2016 FossBytes 25 veresnya 2017 Arhiv originalu za 27 Veresnya 2017 Procitovano 27 Veresnya 2017 Arhiv originalu za 26 veresnya 2007 Procitovano 16 kvitnya 2016 Dzhonatan Gretazh angl Jonathan Grattage QML Kompilyator funkcionalnoyi kvantovoyi movi programuvannya angl A Functional Quantum Programming Language compiler 5 bereznya 2016 u Wayback Machine 2005 2008 Filip Mejmin angl Philip Maymin https web archive org web 20170319035706 https arxiv org abs quant ph 9612052 Arhivovano19 bereznya 2017 u Wayback Machine 19 bereznya 2017 u Wayback Machine 19 Bereznya 2017 u Wayback Machine Rozshirennya lyambda chislennya dlya virazhennya randomizovanih i kvantomizovanih algoritmiv angl Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms 1996 Andre van Tonder Arhiv originalu za 5 Bereznya 2016 Procitovano 16 Kvitnya 2016 Arhiv originalu za 30 Kvitnya 2016 Procitovano 16 Kvitnya 2016 Alexander S Green Peter LeFanu Lumsdaine Neil J Ross Peter Selinger Benoit Valiron Arhiv originalu za 30 Kvitnya 2016 Procitovano 16 Kvitnya 2016 Alexander S Green Peter LeFanu Lumsdaine Neil J Ross Peter Selinger Benoit Valiron 2013 Arhiv originalu za 15 Lyutogo 2017 Procitovano 16 Kvitnya 2016 Arhiv originalu za 21 Sichnya 2021 Procitovano 15 Sichnya 2021 Arhiv originalu za 10 zhovtnya 2019 Procitovano 18 veresnya 2018 McKay David C Alexander Thomas Bello Luciano Biercuk Michael J Bishop Lev Chen Jiayin Chow Jerry M Corcoles Antonio D Egger Daniel Filipp Stefan Gomez Juan Hush Michael Javadi Abhari Ali Moreda Diego Nation Paul Paulovicks Brent Winston Erick Wood Christopher J Wootton James Gambetta Jay M 2018 Qiskit Backend Specifications for OpenQASM and OpenPulse Experiments arXiv 1809 03452 quant ph Posilannya5 j Mizhnarodnij seminar z kvantovoyi fiziki i logiki 20 Veresnya 2010 u Wayback Machine 4 j Mizhnarodnij seminar z kvantovoyi mov programuvannya 22 Listopada 2018 u Wayback Machine 3 j Mizhnarodnij seminar z kvantovoyi mov programuvannya 10 Veresnya 2018 u Wayback Machine 2 j Mizhnarodnij seminar z kvantovoyi mov programuvannya 10 Veresnya 2018 u Wayback Machine Bibliografiya kvantovih mov programuvannya 18 Lyutogo 2020 u Wayback Machine onovleno u travni 2007 roku na Quantiki Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi