Квантовое программирование
Квантовое программирование — это процесс разработки или сборки последовательностей инструкций, называемых квантовыми схемами, с использованием вентилей, переключателей и операторов для управления квантовой системой для достижения желаемого результата или результатов данного эксперимента. Алгоритмы квантовых схем могут быть реализованы на интегральных схемах, реализованы с помощью приборов или написаны на языке программирования для использования с квантовым компьютером или квантовым процессором.
В системах на базе квантовых процессоров квантовые языки программирования помогают выражать квантовые алгоритмы с использованием конструкций высокого уровня. [1] Эта область глубоко укоренена в философии открытого исходного кода , и в результате большая часть квантового программного обеспечения, обсуждаемого в этой статье, находится в свободном доступе как программное обеспечение с открытым исходным кодом . [2]
Квантовые компьютеры, например, основанные на протоколе KLM , модели линейных оптических квантовых вычислений (LOQC), используют квантовые алгоритмы (схемы), реализованные с помощью электроники, интегральных схем, приборов, датчиков и/или других физических средств. [ не проверено в теле ]
Другие схемы, предназначенные для экспериментов, связанных с квантовыми системами, могут быть основаны на приборах и датчиках. [ не проверено в теле ]
Наборы квантовых команд [ править ]
Наборы квантовых инструкций используются для превращения алгоритмов более высокого уровня в физические инструкции, которые могут выполняться на квантовых процессорах. Иногда эти инструкции специфичны для конкретной аппаратной платформы, например, ионных ловушек или сверхпроводящих кубитов .
cQASM [ править ]
cQASM, [3] также известный как общий QASM, представляет собой аппаратно-независимый язык квантовой ассемблера, который гарантирует совместимость между всеми инструментами квантовой компиляции и моделирования. Он был представлен лабораторией QCA в TUDelft .
Квилл [ править ]
Quil — это архитектура набора команд для квантовых вычислений, которая впервые представила модель общей квантовой/классической памяти. Он был представлен Робертом Смитом, Майклом Кертисом и Уильямом Зенгом в книге «Практическая архитектура квантового набора команд» . [4] Многие квантовые алгоритмы (включая квантовую телепортацию , квантовую коррекцию ошибок , моделирование, [5] [6] и алгоритмы оптимизации [7] ) требуют архитектуры общей памяти.
OpenQASM [ править ]
OpenQASM [8] — это промежуточное представление, представленное IBM для использования с Qiskit и IBM Q Experience .
Блэкберд [ править ]
Блэкберд [9] [10] — это квантовый набор команд и промежуточное представление, используемый Xanadu Quantum Technologies и Strawberry Fields. Он предназначен для представления квантовых программ с непрерывной переменной , которые могут работать на фотонном квантовом оборудовании.
разработки программного Quantum Комплекты обеспечения
квантового Комплекты разработки программного обеспечения предоставляют наборы инструментов для создания квантовых программ и управления ими. [11] Они также предоставляют средства для моделирования квантовых программ или подготовки их к запуску с использованием облачных квантовых устройств и автономных квантовых устройств.
SDK с доступом к квантовым процессорам [ править ]
Следующие комплекты разработки программного обеспечения можно использовать для запуска квантовых схем на прототипах квантовых устройств, а также на симуляторах.
процент [ править ]
Проект с открытым исходным кодом, созданный Quandela для проектирования фотонных квантовых схем и разработки квантовых алгоритмов на основе Python . Моделирование запускается либо на собственном компьютере пользователя, либо в облаке . Perceval также используется для подключения к облачному фотонному квантовому процессору Quandela . [12] [13]
Океан [ править ]
Набор инструментов с открытым исходным кодом, разработанный D-Wave. Написанный в основном на языке программирования Python, он позволяет пользователям формулировать задачи в форматах модели Изинга и квадратичной неограниченной двоичной оптимизации (QUBO). Результаты можно получить, отправив их на онлайн-квантовый компьютер в Leap, в среду квантовых приложений реального времени D-Wave, на машины, принадлежащие клиенту, или в классические пробоотборники. [ нужна ссылка ]
ProjectQ [ править ]
Проект с открытым исходным кодом , разработанный в Институте теоретической физики ETH , который использует язык программирования Python для создания квантовых схем и управления ими. [14] Результаты получаются либо с помощью симулятора, либо путем отправки заданий на квантовые устройства IBM.
Крисп [ править ]
Грисп [15] это проект с открытым исходным кодом , координируемый Eclipse Foundation. [16] и разработан Фраунгофером FOKUS на Python. языке программирования [17] Qrisp — язык программирования высокого уровня для создания и компиляции квантовых алгоритмов. Его модель структурированного программирования обеспечивает масштабируемую разработку и обслуживание. Выразительный синтаксис основан на переменных вместо кубитов, с QuantumVariable в качестве основного класса и функциях вместо вентилей. Дополнительные инструменты, такие как высокопроизводительный симулятор и автоматическое выполнение вычислений, дополняют обширную структуру.Более того, он не зависит от платформы, поскольку предлагает альтернативную компиляцию элементарных функций вплоть до уровня схемы на основе наборов вентилей для конкретного устройства.
Кискит [ править ]
Проект с открытым исходным кодом, разработанный IBM . [18] Квантовые схемы создаются и управляются с помощью Python . Результаты получаются либо с использованием симуляторов, которые запускаются на собственном устройстве пользователя, либо симуляторов, предоставляемых IBM, либо прототипов квантовых устройств, предоставленных IBM. Помимо возможности создавать программы с использованием базовых квантовых операций, в специализированных пакетах доступны инструменты более высокого уровня для алгоритмов и сравнительного анализа. [19] Qiskit основан на стандарте OpenQASM для представления квантовых схем. Он также поддерживает управление уровнем импульсов квантовых систем через стандарт QiskitPulse. [20]
Цибо [ править ]
Полнофункциональный API с открытым исходным кодом для квантового моделирования, управления квантовым оборудованием и калибровки, разработанный несколькими исследовательскими лабораториями, включая QRC , CQT и INFN . Qibo — это модульная структура, которая включает в себя несколько серверных частей для квантового моделирования и управления оборудованием. [21] [22] Этот проект направлен на создание независимой от платформы платформы управления квантовым оборудованием с драйверами для нескольких инструментов. [23] и инструменты для квантовой калибровки, характеристики и проверки. [24] Эта платформа ориентирована на автономные квантовые устройства, упрощая разработку программного обеспечения, необходимого в лабораториях.
Лес [ править ]
Проект с открытым исходным кодом , разработанный Rigetti , который использует язык программирования Python для создания квантовых схем и управления ими. Результаты получаются либо с использованием симуляторов, либо с помощью прототипов квантовых устройств, предоставленных Ригетти. Помимо возможности создавать программы с использованием базовых квантовых операций, в пакете Grove доступны алгоритмы более высокого уровня. [25] Forest основан на наборе инструкций Quil .
т|кет> [ править ]
Среда квантового программирования и оптимизирующий компилятор, разработанные Cambridge Quantum Computing и предназначенные для симуляторов и нескольких серверных частей квантового оборудования, выпущенные в декабре 2018 года. [26]
Клубничные поля [ править ]
Библиотека с открытым исходным кодом, Python разработанная Xanadu Quantum Technologies для проектирования, моделирования и оптимизации с непрерывной переменной (CV) . квантовых оптических схем [27] [28] Предусмотрено три симулятора — один на основе Фока , один с использованием гауссовой формулировки квантовой оптики, [29] и один с использованием библиотеки машинного обучения TensorFlow . Strawberry Fields также является библиотекой для выполнения программ на квантово-фотонном оборудовании Занаду. [30] [31]
ПенниЛейн [ править ]
Библиотека с открытым исходным кодом, Python разработанная Xanadu Quantum Technologies для дифференцируемого программирования квантовых компьютеров. [32] [33] [34] [35] PennyLane предоставляет пользователям возможность создавать модели с помощью TensorFlow , NumPy или PyTorch и соединять их с серверными модулями квантовых компьютеров, доступными от IBMQ , Google Quantum , Rigetti , Quantinuum. [36] и Alpine Quantum Technologies . [37] [38]
Квантовый комплект разработки [ править ]
Проект, разработанный Microsoft [39] как часть .NET Framework . Квантовые программы можно писать и запускать в Visual Studio и VSCode с использованием языка квантового программирования Q#. Программы, разработанные в QDK, можно запускать в Microsoft Azure Quantum . [40] и запускать на квантовых компьютерах от Quantinuum , [36] IonQ и Паскаль . [41]
Цирк [ править ]
Проект с открытым исходным кодом , разработанный Google , который использует язык программирования Python для создания квантовых схем и управления ими. Программы, написанные на Cirq, можно запускать на IonQ , Pasqal , [41] Ригетти и Alpine Quantum Technologies . [37]
Квантовые языки программирования [ править ]
Существует две основные группы квантовых языков программирования: императивные квантовые языки программирования и функциональные языки квантового программирования.
Императивные языки [ править ]
Наиболее яркими представителями императивных языков являются QCL, [42] LanQ [43] и Q|SI>. [44]
Введите [ изменить
Является [45] — это встроенный язык с открытым исходным кодом, предназначенный для облегчения квантового программирования, использующий знакомый синтаксис и простоту Python. Он служит неотъемлемым компонентом платформы квантового программирования Ket. [46] плавно интегрируется с библиотекой времени выполнения Rust и квантовым симулятором. Проект, поддерживаемый Quantuloop, подчеркивает доступность и универсальность для исследователей и разработчиков. Следующий пример демонстрирует реализацию состояния Bell с использованием Ket:
from ket import *a, b = quant(2) # Allocate two quantum bitsH(a) # Put qubit `a` in a superpositioncnot(a, b) # Entangle the two qubits in the Bell statem_a = measure(a) # Measure qubit `a`, collapsing qubit `b` as wellm_b = measure(b) # Measure qubit `b`# Assert that the measurement of both qubits will always be equalassert m_a.value == m_b.value
ККЛ [ править ]
Язык квантовых вычислений (QCL) — один из первых реализованных языков квантового программирования . [47] Наиболее важной особенностью QCL является поддержка пользовательских операторов и функций. Его синтаксис напоминает синтаксис языка программирования C , а его классические типы данных аналогичны примитивным типам данных в C. В одной программе можно комбинировать классический код и квантовый код.
Квантовый псевдокод [ править ]
Квантовый псевдокод, предложенный Э. Книлом, является первым формализованным языком описания квантовых алгоритмов . Она была введена и, более того, была тесно связана с моделью квантовой машины под названием Quantum Random Access Machine (QRAM).
Вопрос# [ править ]
Язык, разработанный Microsoft для использования с Quantum Development Kit . [48]
Q|SI> [ править ]
Q|SI> — это платформа, встроенная в язык .Net , поддерживающая квантовое программирование в квантовом расширении while-language. [44] [49] Эта платформа включает в себя компилятор квантового языка while. [50] и цепочка инструментов для моделирования квантовых вычислений, оптимизации квантовых схем, анализа завершения квантовых программ, [51] и верификация квантовых программ. [52] [53]
Q язык [ править ]
Q Language — второй реализованный императивный квантовый язык программирования. [54] Язык Q был реализован как расширение языка программирования C++. Он предоставляет классы для основных квантовых операций, таких как QHadamard, QFourier, QNot и QSwap, которые являются производными от базового класса Qop. Новые операторы могут быть определены с использованием механизма классов C++.
Квантовая память представлена классом Qreg.
Qreg x1; // 1-qubit quantum register with initial value 0Qreg x2(2,0); // 2-qubit quantum register with initial value 0
Процесс вычислений выполняется с помощью предоставленного симулятора. Шумную среду можно моделировать с помощью параметров симулятора.
qGCL [ править ]
Язык квантовых защищенных команд (qGCL) был определен П. Зулиани в его докторской диссертации. Он основан на защищенном командном языке, созданном Эдсгером Дейкстрой .
Его можно охарактеризовать как язык спецификации квантовых программ.
КМАСМ [ править ]
Quantum Macro Assembler (QMASM) — это язык низкого уровня, специфичный для квантовых отжигов, таких как D-Wave. [55]
Эшафот [ править ]
Scaffold — это C-подобный язык, который компилируется в QASM и OpenQASM. Он построен на основе инфраструктуры компилятора LLVM и предназначен для оптимизации кода Scaffold перед генерацией указанного набора команд. [56] [57]
Силк [ править ]
Silq — это язык программирования высокого уровня для квантовых вычислений со строгой статической системой типов, разработанный в ETH Zürich . [58] [59]
ЛКП [ править ]
Логика квантовых программ (LQP) — это динамическая квантовая логика, способная выражать важные особенности квантовых измерений и унитарной эволюции многочастных состояний и обеспечивающая логические характеристики различных форм запутанности. Логика использовалась для определения и проверки правильности различных протоколов квантовых вычислений. [60] [61]
Функциональные языки [ править ]
В настоящее время предпринимаются усилия по разработке функциональных языков программирования для квантовых вычислений . Функциональные языки программирования хорошо подходят для рассуждений о программах. Примеры включают QPL Селинджера, [62] и Haskell -подобный язык QML Альтенкирха и Граттажа. [63] [64] Языки квантового программирования высшего порядка, основанные на лямбда-исчислении , были предложены Ван Тондером. [65] Селинджер и Валирон [66] и Арриги и Доуек. [67]
QFC и QPL [ править ]
QFC и QPL — два тесно связанных языка квантового программирования, определенные Питером Селинджером. Они отличаются только синтаксисом: QFC использует синтаксис блок-схемы, тогда как QPL использует текстовый синтаксис. Эти языки имеют классический поток управления, но могут работать с квантовыми или классическими данными. Селинджер дает денотационную семантику для этих языков в категории супероператоров .
QML [ править ]
QML — это язык квантового программирования, подобный Haskell, разработанный Альтенкирхом и Граттажем. [68] [63] В отличие от QPL Селинджера, этот язык воспринимает дублирование, а не удаление квантовой информации как примитивную операцию. Дублирование в этом контексте понимается как операция, которая отображает к , и не следует путать с невозможной операцией клонирования ; авторы утверждают, что это похоже на то, как совместное использование моделируется в классических языках. QML также вводит как классические, так и квантовые операторы управления, тогда как большинство других языков полагаются на классическое управление.
Операционная семантика для QML дается в терминах квантовых схем , а денотатационная семантика представлена в терминах супероператоров , и показано, что они согласуются. И операционная, и денотационная семантика реализованы (классически) в Haskell. [69]
LIQUi|> [ править ]
LIQUi|> (произносится как жидкость ) — это расширение квантового моделирования на языке программирования F# . [70] В настоящее время он разрабатывается Группой квантовых архитектур и вычислений (QuArC). [71] часть усилий StationQ в Microsoft Research. LIQUi|> стремится позволить теоретикам экспериментировать с разработкой квантовых алгоритмов до того, как физические квантовые компьютеры станут доступны для использования. [72]
Он включает в себя язык программирования, алгоритмы оптимизации и планирования, а также квантовые симуляторы. LIQUi|> можно использовать для перевода квантового алгоритма, написанного в виде программы высокого уровня, в машинные инструкции низкого уровня для квантового устройства. [73]
лямбда исчисление - Квантовое
Квантовые лямбда-исчисления являются расширением классического лямбда-исчисления, введенного Алонзо Чёрчем и Стивеном Коулом Клини в 1930-х годах. Цель квантовых лямбда-исчислений — расширить квантовые языки программирования теорией функций высшего порядка .
Первую попытку дать определение квантовому лямбда-исчислению предпринял Филип Меймин в 1996 году. [74] Его лямбда-q-исчисление достаточно мощное, чтобы выразить любые квантовые вычисления. Однако этот язык может эффективно решать NP-полные задачи и, следовательно, кажется строго более сильным, чем стандартные квантовые вычислительные модели (такие как квантовая машина Тьюринга или модель квантовой схемы ). Следовательно, лямбда-q-исчисление Мэймина, вероятно, невозможно реализовать на физическом устройстве. [ нужна ссылка ] .
В 2003 году Андре ван Тондер определил расширение лямбда-исчисления, подходящее для доказательства корректности квантовых программ. Он также предоставил реализацию на языке программирования Scheme . [75]
В 2004 году Селинджер и Валирон определили строго типизированное лямбда-исчисление для квантовых вычислений с системой типов, основанной на линейной логике . [76]
Квипер [ править ]
Киппер был опубликован в 2013 году. [77] [78] Он реализован как встроенный язык с использованием Haskell в качестве основного языка. [79] По этой причине квантовые программы, написанные на Quipper, пишутся на Haskell с использованием предоставленных библиотек. Например, следующий код реализует подготовку суперпозиции
import Quipperspos :: Bool -> Circ Qubitspos b = do q <- qinit b r <- hadamard q return r
Ссылки [ править ]
- ^ Ярослав Адам Мищак (2012). Структуры высокого уровня в квантовых вычислениях . Издательство Морган и Клейпул. ISBN 9781608458516 .
- ^ «Полный список квантовых проектов с открытым исходным кодом» . Гитхаб . Проверено 27 января 2022 г.
- ^ Бертельс, К.; Альмудевер, CG; Хогабоам, JW; Ашраф, И.; Геррески, Г.Г.; Хаммасси, Н. (24 мая 2018 г.). «cQASM v1.0: На пути к общему квантовому ассемблеру». arXiv : 1805.09607v1 [ квант-ph ].
- ^ Смит, Роберт С.; Кертис, Майкл Дж.; Цзэн, Уильям Дж. (2016). «Практическая архитектура квантового набора команд». arXiv : 1608.03355 [ квант-ph ].
- ^ МакКлин, Джаррод Р.; Ромеро, Джонатан; Бэббуш, Райан; Аспуру-Гузик, Алан (4 февраля 2016 г.). «Теория вариационных гибридных квантово-классических алгоритмов». Новый журнал физики . 18 (2): 023023. arXiv : 1509.04279 . Бибкод : 2016NJPh...18b3023M . дои : 10.1088/1367-2630/18/2/023023 . ISSN 1367-2630 . S2CID 92988541 .
- ^ Рубин, Николас С.; Кертис, Майкл Дж.; Цзэн, Уильям Дж. (2016). «Гибридный классический/квантовый подход для крупномасштабных исследований квантовых систем с помощью теории вложения матрицы плотности». arXiv : 1610.06910 [ квант-ph ].
- ^ Фархи, Эдвард; Голдстоун, Джеффри; Гутманн, Сэм (2014). «Квантовый приближенный алгоритм оптимизации». arXiv : 1411.4028 [ квант-ph ].
- ^ qiskit-openqasm: спецификация OpenQASM , International Business Machines, 4 июля 2017 г. , получено 6 июля 2017 г.
- ^ «Язык квантового ассемблера Blackbird — документация Blackbird 0.2.0» . Quantum-blackbird.readthedocs.io . Проверено 24 июня 2019 г.
- ^ Видбрук, Кристиан; Эми, Мэтью; Бергхольм, Вилле; Кесада, Николас; Исаак, Джош; Киллоран, Натан (11 марта 2019 г.). «Земляничные поля: программная платформа для фотонных квантовых вычислений». Квантовый . 3 : 129. arXiv : 1804.03159 . Бибкод : 2019Количество...3..129K . doi : 10.22331/кв-2019-03-11-129 . S2CID 54763305 .
- ^ Ханер, Томас; Штайгер, Дамиан С.; Своре, Криста ; Тройер, Матиас (2018). «Программная методология составления квантовых программ». Квантовая наука и технология . 3 (2): 020501. arXiv : 1604.01401 . Бибкод : 2018QS&T....3b0501H . дои : 10.1088/2058-9565/aaa5cc . ISSN 2058-9565 . S2CID 1922315 .
- ^ «Мощность квантового компьютера протестирована онлайн» . Le Monde.fr . Мир. 22 ноября 2022 г.
- ^ Эртель, Николя; Форильяс, Эндрю; Глиниасти Григорий; Ле Биан, Рафаэль; Малерб, Себастьен; Пайяс, Марсо; Бертаси, Эрик; Бурдонкль, Борис; Эмерио, Пьер-Эммануэль; Межер, Равад; Музыка, Люк; Белабас, Надя; Валирон, Бенуа; Сенелларт, Паскаль; Мэнсфилд, Шейн; Сенеллар, Жан (21 февраля 2023 г.). «Персеваль: программная платформа для фотонных квантовых вычислений с дискретными переменными» . Квантовый . 7 : 931. arXiv : 2204.00602 . Бибкод : 2023Quant...7..931H . doi : 10.22331/q-2023-02-21-931 . S2CID 247922568 .
- ^ "Дом" .
- ^ «Официальный сайт Qrisp» .
- ^ «Фонд Eclipse (веб-сайт)» .
- ^ «Фраунгофер ФОКУС (сайт)» .
- ^ «qiskit.org» . qiskit.org .
- ^ «Обзор Кискита» . Проверено 10 февраля 2021 г.
- ^ Маккей, Дэвид С.; Александр, Томас; Белло, Лучано; Берчук, Майкл Дж.; Епископ Лев; Чен, Цзяинь; Чоу, Джерри М.; Корколес, Антонио Д.; Эггер, Дэниел; Филипп, Стефан; Гомес, Хуан; Тише, Майкл; Джавади-Абхари, Али; Мореда, Диего; Нация, Пол; Пауловикс, Брент; Уинстон, Эрик; Вуд, Кристофер Дж.; Вуттон, Джеймс; Гамбетта, Джей М. (2018). «Спецификации бэкенда Qiskit для экспериментов OpenQASM и OpenPulse». arXiv : 1809.03452 [ квант-ph ].
- ^ Эфтимиу, Ставрос; Рамос-Кальдерер, Сержи; Браво-Прието, Карлос; Перес-Салинас, Адриан; Гарсия-Мартин, Диего; Гарсиа-Саес, Артур; Латорре, Хосе Игнасио; Каррацца, Стефано (1 января 2022 г.). «Qibo: основа квантового моделирования с аппаратным ускорением» . Квантовая наука и технология . 7 (1): 015018. arXiv : 2009.01845 . Бибкод : 2022QS&T....7a5018E . дои : 10.1088/2058-9565/ac39f5 . hdl : 2434/887963 . ISSN 2058-9565 . S2CID 221507478 .
- ^ Эфтимиу, Ставрос; Лазарин, Марко; Паскуале, Андреа; Каррацца, Стефано (22 сентября 2022 г.). «Квантовое моделирование с своевременной компиляцией» . Квантовый . 6 : 814. arXiv : 2203.08826 . Бибкод : 2022Quant...6..814E . doi : 10.22331/q-2022-09-22-814 . S2CID 247518955 .
- ^ «Киболаб» . 2 ноября 2022 г. — через GitHub.
- ^ «Кибокал» . 1 ноября 2022 г. – через GitHub.
- ^ «Добро пожаловать в документацию Grove! — Документация Grove 1.7.0» . grove-docs.readthedocs.io .
- ^ «пыткет» . Гитхаб . 22 января 2022 г.
- ^ «Strawberry Fields — документация Strawberry Fields 0.8.0» . Strawberryfields.readthedocs.io . Проверено 25 сентября 2018 г.
- ^ Киллоран, Натан; Исаак, Джош; Кесада, Николас; Бергхольм, Вилле; Эми, Мэтью; Видбрук, Кристиан (2019). «Земляничные поля: программная платформа для фотонных квантовых вычислений». Квантовый . 3 : 129. arXiv : 1804.03159 . Бибкод : 2019Количество...3..129K . doi : 10.22331/кв-2019-03-11-129 . S2CID 54763305 .
- ^ Видбрук, Кристиан; Пирандола, Стефано; Гарсиа-Патрон, Рауль; Серф, Николас Дж.; Ральф, Тимоти К.; Шапиро, Джеффри Х.; Ллойд, Сет (1 мая 2012 г.). «Гауссова квантовая информация». Обзоры современной физики . 84 (2): 621–669. arXiv : 1110.3234 . Бибкод : 2012РвМП...84..621Вт . дои : 10.1103/RevModPhys.84.621 . S2CID 119250535 .
- ^ «Оборудование — Клубничные поля» . Strawberryfields.ai . Проверено 26 марта 2021 г.
- ^ «В гонке за сотнями кубитов фотоны могут иметь «квантовое преимущество» » . IEEE Spectrum: Новости технологий, техники и науки . 5 марта 2021 г. Проверено 26 марта 2021 г.
- ^ «Документация PennyLane — документация PennyLane 0.14.1» . pennylane.readthedocs.io . Проверено 26 марта 2021 г.
- ^ «AWS присоединяется к PennyLane, платформе с открытым исходным кодом, которая объединяет машинное обучение с квантовыми вычислениями» . КремниевыйУГОЛ . 17 февраля 2021 г. . Проверено 26 марта 2021 г.
- ^ «Проект недели с открытым исходным кодом SD Times: PennyLane» . СД Таймс . 26 февраля 2021 г. . Проверено 26 марта 2021 г.
- ^ Саламоне, Сальваторе (13 декабря 2020 г.). «Сводка новостей аналитики в реальном времени за неделю, заканчивающуюся 12 декабря» . RTInsights . Проверено 26 марта 2021 г.
- ^ Jump up to: Перейти обратно: а б «Ускорение квантовых вычислений» . www.quantinuum.com .
- ^ Jump up to: Перейти обратно: а б "Дом" . АКТ | АЛЬПИЙСКИЕ КВАНТОВЫЕ ТЕХНОЛОГИИ .
- ^ «Плагины и экосистема — PennyLane» . pennylane.ai . Проверено 26 марта 2021 г.
- ^ «Документация по Azure Quantum, справочник по API QDK и Q# — Azure Quantum» . Learn.microsoft.com .
- ^ «Что такое Azure Quantum? — Azure Quantum» . Learn.microsoft.com . 11 января 2023 г.
- ^ Jump up to: Перейти обратно: а б «ПАСКАЛЬ» . ПАСКАЛЬ .
- ^ Бернхард Омер. «Язык программирования QCL» .
- ^ Гинек Млнаржик. «LanQ – квантовый императивный язык программирования» .
- ^ Jump up to: Перейти обратно: а б Гуань, Цзи; Дуань, Руньяо, Миншэн (9 мая 2017 . Лю, Шусен, Ли ; г. ) 1300. arXiv : 1710.09500 . doi : 10.1360 N112017-00095 : /
- ^ Да Роса, Эвандро Шагас Рибейру; Де Сантьяго, Рафаэль (31 января 2022 г.). «Кетское квантовое программирование» . Журнал ACM о новых технологиях в вычислительных системах . 18 (1): 1–25. дои : 10.1145/3474224 . ISSN 1550-4832 .
- ^ «Кетское квантовое программирование» . Quantket.org . Проверено 18 мая 2023 г.
- ^ «QCL — язык программирования для квантовых компьютеров» . tuwien.ac.at . Проверено 20 июля 2017 г.
- ^ «Введение в пакет разработки Q# и Quantum — Azure Quantum» . Learn.microsoft.com . 30 марта 2023 г.
- ^ Инь, Миншэн (январь 2012 г.). «Логика Флойда-Хора для квантовых программ» . АКМ Транс. Программа. Ланг. Сист . 33 (6): 19:1–19:49. дои : 10.1145/2049706.2049708 . ISSN 0164-0925 . S2CID 416960 .
- ^ Инь, Миншэн; Фэн, Юань (2010). «Язык блок-схем для квантового программирования» . Транзакции IEEE по разработке программного обеспечения . 37 (4): 466–485. дои : 10.1109/TSE.2010.94 . ISSN 0098-5589 . S2CID 5879273 .
- ^ Инь, Миншэн; Ю, Нэнкун; Фэн, Юань; Дуань, Руняо (2013). «Верификация квантовых программ». Наука компьютерного программирования . 78 (9): 1679–1700. arXiv : 1106.4063 . дои : 10.1016/j.scico.2013.03.016 . S2CID 18913620 .
- ^ Инь, Миншэн; Инь, Шэнган; Ву, Сяоди (2017), «Инварианты квантовых программ: характеристики и генерация», Уведомления ACM SIGPLAN , 52 : 818–832, doi : 10.1145/3093333.3009840 , hdl : 10453/127333
- ^ Лю, Тао; Ли, Янцзя; Ван, Шулин; Инь, Миншэн; Чжан, Найджун (2016). «Доказательство теорем квантовой логики Хоара и ее приложений». arXiv : 1601.03835 [ cs.LO ].
- ^ «Программное обеспечение для языка Q» . 23 ноября 2001 года. Архивировано из оригинала 20 июня 2009 года . Проверено 20 июля 2017 г.
- ^ Скотт Пэкин, «Квантовый макроассемблер» , Материалы 20-й ежегодной конференции IEEE по высокопроизводительным экстремальным вычислениям, 2016 г.
- ^ Джавади-Абхари, Али. «Scaffold: квантовый язык программирования» . Принстонский университет, факультет компьютерных наук . Принстонский университет . Проверено 22 сентября 2020 г.
- ^ Литтекен, Эндрю (28 мая 2020 г.). «Обновленный компилятор квантовых исследований на основе LLVM с дальнейшей поддержкой OpenQASM» . Квантовая наука и технология . 5 (3): 034013. Бибкод : 2020QS&T....5c4013L . дои : 10.1088/2058-9565/ab8c2c . ОСТИ 1803951 . S2CID 219101628 .
- ^ «Что такое Силк?» . silq.ethz.ch. Проверено 21 июня 2020 г.
- ^ Бичсел, Бенджамин; Баадер, Максимилиан; Гер, Тимон; Вечев, Мартин (11 июня 2020 г.). «Silq: квантовый язык высокого уровня с безопасными вычислениями и интуитивной семантикой». Материалы 41-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . Лондон, Великобритания: ACM. стр. 286–300. дои : 10.1145/3385412.3386007 . ISBN 978-1-4503-7613-6 . S2CID 219397029 .
- ^ А. Балтаг и С. Сметс, «LQP: Динамическая логика квантовой информации» , Математические структуры в информатике 16 (3): 491-525, 2006.
- ^ Балтаг, Александру; Бергфельд, Йорт; Кисида, Кохей; Сак, Джошуа; Сметс, Соня; Чжун, Шэнъян (2014). «PLQP & Company: Разрешимая логика для квантовых алгоритмов» . Международный журнал теоретической физики . 53 (10): 3628–3647. Бибкод : 2014IJTP...53.3628B . дои : 10.1007/s10773-013-1987-3 . S2CID 254573992 .
- ^ Питер Селинджер, «На пути к квантовому языку программирования» , Mathematical Structures in Computer Science 14(4):527-586, 2004.
- ^ Jump up to: Перейти обратно: а б Джонатан Граттедж: QML Research (веб-сайт)
- ^ Т. Альтенкирх, В. Белавкин, Дж. Граттаж, А. Грин, А. Сабри, Дж. К. Виццотто, QML: функциональный квантовый язык программирования. Архивировано 10 июля 2006 г. на Wayback Machine (веб-сайт).
- ^ Андре ван Тондер, «Лямбда-исчисление для квантовых вычислений» , SIAM J. Comput., 33 (5), 1109–1135. (27 страниц), 2004 г. Также доступно на сайте arXiv:quant-ph/0307150.
- ^ Питер Селинджер и Бенуа Валирон, «Лямбда-исчисление для квантовых вычислений с классическим управлением» , Mathematical Structures in Computer Science 16(3):527-552, 2006.
- ^ Пабло Арриги, Жиль Довек, «Линейно-алгебраическое лямбда-исчисление: высший порядок, кодировки и слияние» , 2006 г.
- ^ «QML: функциональный квантовый язык программирования» . 26 сентября 2007 г. Архивировано из оригинала 26 сентября 2007 г.
- ^ Джонатан Граттедж, QML: функциональный квантовый язык программирования (компилятор). Архивировано 5 марта 2016 г. в Wayback Machine , 2005–2008 гг.
- ^ «Языковой интегрированный симулятор квантовых операций» . github.io . Проверено 20 июля 2017 г.
- ^ Группа квантовых архитектур и вычислений (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/ , 2011 г.
- ^ «СтанцияQ» . microsoft.com . Проверено 20 июля 2017 г.
- ^ «Интегрированные в язык квантовые операции: LIQUi|>» . Майкрософт . 2016.
- ^ Филип Мэймин, «Расширение лямбда-исчисления для выражения рандомизированных и квантованных алгоритмов» , 1996 г.
- ^ Андре ван Тондер. «Лямбда-исчисление для квантовых вычислений (веб-сайт)» . Архивировано из оригинала 5 марта 2016 года . Проверено 2 октября 2007 г.
- ^ Питер Селинджер, Бенуит Валирон, «Квантовое лямбда-исчисление»
- ^ «Язык Квипера» .
- ^ Александр С. Грин; Питер ЛеФану Ламсдейн; Нил Дж. Росс; Питер Селинджер; Бенуа Валирон. «Язык квипера (веб-сайт)» .
- ^ Александр С. Грин; Питер ЛеФану Ламсдейн; Нил Дж. Росс; Питер Селинджер; Бенуа Валирон (2013). «Введение в квантовое программирование в Quipper». Обратимые вычисления . Конспекты лекций по информатике. Том. 7948. стр. 110–124. arXiv : 1304.5485 . дои : 10.1007/978-3-642-38986-3_10 . ISBN 978-3-642-38985-6 . S2CID 9135905 .
Дальнейшее чтение [ править ]
- Миншэн, Ин (2024). Основы квантового программирования (2-е изд.). Кембридж, Массачусетс: Морган Кауфманн. ISBN 978-0-4431-5942-8 . OCLC 1406095194 . 978-0-4431-5943-5 (электронная книга).
- Серрано, Мануэль А.; Перес-Кастильо, Рикардо; Пьяттини, Марио, ред. (2022). Квантовая программная инженерия (1-е изд.). Чам, Швейцария: Springer. дои : 10.1007/978-3-031-05324-5 . ISBN 978-3-031-05323-8 . OCLC 1347696597 . 978-3-031-05326-9 (мягкий переплет) и 978-3-031-05324-5 (электронная книга).
Внешние ссылки [ править ]
- Кураторский список всех проектов квантового программного обеспечения с открытым исходным кодом
- Библиография по квантовым языкам программирования (обновлена в мае 2007 г.)
- Серия конференций по квантовой физике и логике (QPL) (до 2006 года буква L обозначала «Языки»)
- Квантовый язык программирования в Quantiki
- Документация QMASM
- Документация pyQuil , включая введение в квантовые вычисления. Архивировано 18 июля 2018 г. на Wayback Machine.
- Источник строительных лесов