Квантовое программирование
Квантовое программирование — это процесс разработки или сборки последовательностей инструкций, называемых квантовыми схемами, с использованием вентилей, переключателей и операторов для управления квантовой системой для достижения желаемого результата или результатов данного эксперимента. Алгоритмы квантовых схем могут быть реализованы на интегральных схемах, реализованы с помощью приборов или написаны на языке программирования для использования с квантовым компьютером или квантовым процессором.
В системах на базе квантовых процессоров квантовые языки программирования помогают выражать квантовые алгоритмы с использованием конструкций высокого уровня. [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 bits
H(a) # Put qubit `a` in a superposition
cnot(a, b) # Entangle the two qubits in the Bell state
m_a = measure(a) # Measure qubit `a`, collapsing qubit `b` as well
m_b = measure(b) # Measure qubit `b`
# Assert that the measurement of both qubits will always be equal
assert 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 0
Qreg 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 Quipper
spos :: Bool -> Circ Qubit
spos 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.
- Источник строительных лесов