Квантовое программирование
Квантовое программирование — это процесс разработки или сборки последовательностей инструкций, называемых квантовыми схемами, с использованием вентилей, переключателей и операторов для управления квантовой системой для достижения желаемого результата или результатов данного эксперимента. Алгоритмы квантовых схем могут быть реализованы на интегральных схемах, реализованы с помощью приборов или написаны на языке программирования для использования с квантовым компьютером или квантовым процессором.
В системах на базе квантовых процессоров квантовые языки программирования помогают выражать квантовые алгоритмы с использованием конструкций высокого уровня. [1] Эта область глубоко укоренена в философии открытого исходного кода , и в результате большая часть квантового программного обеспечения, обсуждаемого в этой статье, находится в свободном доступе как программное обеспечение с открытым исходным кодом . [2]
Квантовые компьютеры, например, основанные на протоколе KLM , модели линейных оптических квантовых вычислений (LOQC), используют квантовые алгоритмы (схемы), реализованные с помощью электроники, интегральных схем, приборов, датчиков и/или других физических средств. [ не проверено в теле ]
Другие схемы, предназначенные для экспериментов, связанных с квантовыми системами, могут быть основаны на приборах и датчиках. [ не проверено в теле ]
Квантовые наборы команд
[ редактировать ]Наборы квантовых инструкций используются для превращения алгоритмов более высокого уровня в физические инструкции, которые могут выполняться на квантовых процессорах. Иногда эти инструкции специфичны для конкретной аппаратной платформы, например, ионных ловушек или сверхпроводящих кубитов .
Блэкберд
[ редактировать ]Блэкберд [3] [4] — это квантовый набор команд и промежуточное представление, используемый Xanadu Quantum Technologies и Strawberry Fields. Он предназначен для представления квантовых программ с непрерывной переменной , которые могут работать на фотонном квантовом оборудовании.
cQASM
[ редактировать ]cQASM, [5] также известный как общий QASM, представляет собой аппаратно-независимый язык квантовой ассемблера, который гарантирует совместимость между всеми инструментами квантовой компиляции и моделирования. Он был представлен лабораторией QCA Lab в TUDelft .
OpenQASM
[ редактировать ]OpenQASM [6] — это промежуточное представление, представленное IBM для использования с Qiskit и IBM Q Experience .
Квилл
[ редактировать ]Quil — это архитектура набора команд для квантовых вычислений, которая впервые представила модель общей квантовой/классической памяти. Он был представлен Робертом Смитом, Майклом Кертисом и Уильямом Зенгом в книге «Практическая архитектура квантового набора команд» . [7] Многие квантовые алгоритмы (включая квантовую телепортацию , квантовую коррекцию ошибок , моделирование, [8] [9] и алгоритмы оптимизации [10] ) требуют архитектуры общей памяти.
Комплекты разработки программного обеспечения Quantum
[ редактировать ]квантового Комплекты разработки программного обеспечения предоставляют наборы инструментов для создания квантовых программ и управления ими. [11] Они также предоставляют средства для моделирования квантовых программ или подготовки их к запуску с использованием облачных квантовых устройств и автономных квантовых устройств.
SDK с доступом к квантовым процессорам
[ редактировать ]Следующие комплекты разработки программного обеспечения можно использовать для запуска квантовых схем на прототипах квантовых устройств, а также на симуляторах.
Цирк
[ редактировать ]Проект с открытым исходным кодом, разработанный Google , который использует язык программирования Python для создания квантовых схем и управления ими. Программы, написанные на Cirq, можно запускать на IonQ , Pasqal , [12] Ригетти и Alpine Quantum Technologies . [13]
Классический
[ редактировать ]Облачная квантовая IDE, разработанная Classiq, использует квантовый язык высокого уровня Qmod для создания масштабируемых и эффективных квантовых схем с помощью аппаратно-ориентированного механизма синтеза, который может быть развернут в широком диапазоне QPU. Платформа включает в себя большую библиотеку квантовых алгоритмов.
Лес
[ редактировать ]Проект с открытым исходным кодом, разработанный Rigetti , который использует язык программирования Python для создания квантовых схем и управления ими. Результаты получаются либо с использованием симуляторов, либо с помощью прототипов квантовых устройств, предоставленных Ригетти. Помимо возможности создавать программы с использованием базовых квантовых операций, в пакете Grove доступны алгоритмы более высокого уровня. [14] Forest основан на наборе инструкций Quil .
Океан
[ редактировать ]Набор инструментов с открытым исходным кодом, разработанный D-Wave. Написанный в основном на языке программирования Python, он позволяет пользователям формулировать задачи в форматах модели Изинга и квадратичной неограниченной двоичной оптимизации (QUBO). Результаты можно получить, отправив их на онлайн-квантовый компьютер в Leap, в среду квантовых приложений реального времени D-Wave, на машины, принадлежащие клиенту, или в классические пробоотборники. [ нужна ссылка ]
Пеннилейн
[ редактировать ]Библиотека с открытым исходным кодом, Python разработанная Xanadu Quantum Technologies для дифференцируемого программирования квантовых компьютеров. [15] [16] [17] [18] PennyLane предоставляет пользователям возможность создавать модели с помощью TensorFlow , NumPy или PyTorch и соединять их с серверными модулями квантовых компьютеров, доступными от IBMQ , Google Quantum , Rigetti , Quantinuum. [19] и Alpine Quantum Technologies . [13] [20]
Персеваль
[ редактировать ]Проект с открытым исходным кодом, созданный Quandela для проектирования фотонных квантовых схем и разработки квантовых алгоритмов на основе Python . Моделирование запускается либо на собственном компьютере пользователя, либо в облаке . Perceval также используется для подключения к облачному фотонному квантовому процессору Quandela . [21] [22]
ПроектQ
[ редактировать ]Проект с открытым исходным кодом, разработанный в Институте теоретической физики ETH , который использует язык программирования Python для создания квантовых схем и управления ими. [23] Результаты получаются либо с помощью симулятора, либо путем отправки заданий на квантовые устройства IBM.
Цибо
[ редактировать ]Полнофункциональный API с открытым исходным кодом для квантового моделирования, управления квантовым оборудованием и калибровки, разработанный несколькими исследовательскими лабораториями, включая QRC , CQT и INFN . Qibo — это модульная структура, которая включает в себя несколько серверных частей для квантового моделирования и управления оборудованием. [24] [25] Этот проект направлен на создание независимой от платформы платформы управления квантовым оборудованием с драйверами для нескольких инструментов. [26] и инструменты для квантовой калибровки, характеристики и проверки. [27] Эта платформа ориентирована на автономные квантовые устройства, упрощая разработку программного обеспечения, необходимого в лабораториях.
Кискит
[ редактировать ]Проект с открытым исходным кодом, разработанный IBM . [28] Квантовые схемы создаются и управляются с помощью Python . Результаты получаются либо с использованием симуляторов, которые запускаются на собственном устройстве пользователя, либо симуляторов, предоставляемых IBM, либо прототипов квантовых устройств, предоставленных IBM. Помимо возможности создавать программы с использованием базовых квантовых операций, в специализированных пакетах доступны инструменты более высокого уровня для алгоритмов и сравнительного анализа. [29] Qiskit основан на стандарте OpenQASM для представления квантовых схем. Он также поддерживает управление уровнем импульсов квантовых систем через стандарт QiskitPulse. [30]
Грисп
[ редактировать ]Грисп [31] это проект с открытым исходным кодом, координируемый Eclipse Foundation. [32] и разработан Фраунгофером FOKUS на Python. языке программирования [33] Qrisp — язык программирования высокого уровня для создания и компиляции квантовых алгоритмов. Его модель структурированного программирования обеспечивает масштабируемую разработку и обслуживание. Выразительный синтаксис основан на переменных вместо кубитов, с QuantumVariable в качестве основного класса и функциях вместо вентилей. Дополнительные инструменты, такие как высокопроизводительный симулятор и автоматическое выполнение вычислений, дополняют обширную структуру. Более того, он не зависит от платформы, поскольку предлагает альтернативную компиляцию элементарных функций вплоть до уровня схемы на основе наборов вентилей для конкретного устройства.
Квантовый комплект разработки
[ редактировать ]Проект, разработанный Microsoft [34] как часть .NET Framework . Квантовые программы можно писать и запускать в Visual Studio и VSCode с использованием языка квантового программирования Q#. Программы, разработанные в QDK, можно запускать в Microsoft Azure Quantum . [35] и запускать на квантовых компьютерах от Quantinuum , [19] IonQ и Паскаль . [12]
Клубничные поля
[ редактировать ]Библиотека с открытым исходным кодом, Python разработанная Xanadu Quantum Technologies для проектирования, моделирования и оптимизации с непрерывной переменной (CV) . квантовых оптических схем [36] [37] Предусмотрено три симулятора — один на основе Фока , другой с использованием гауссовой формулировки квантовой оптики, [38] и один с использованием библиотеки машинного обучения TensorFlow . Strawberry Fields также является библиотекой для выполнения программ на квантово-фотонном оборудовании Занаду. [39] [40]
т|кет>
[ редактировать ]Среда квантового программирования и оптимизирующий компилятор, разработанные Cambridge Quantum Computing и предназначенные для симуляторов и нескольких серверных частей квантового оборудования, выпущенные в декабре 2018 года. [41]
Квантовые языки программирования
[ редактировать ]Существует две основные группы квантовых языков программирования: императивные квантовые языки программирования и функциональные языки квантового программирования.
Императивные языки
[ редактировать ]Наиболее яркими представителями императивных языков являются 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
ПКП
[ редактировать ]Логика квантовых программ (LQP) — это динамическая квантовая логика, способная выражать важные особенности квантовых измерений и унитарной эволюции многочастных состояний и обеспечивающая логические характеристики различных форм запутанности. Логика использовалась для определения и проверки правильности различных протоколов квантовых вычислений. [47] [48]
Q язык
[ редактировать ]Q Language — второй реализованный императивный квантовый язык программирования. [49] Язык 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
Процесс вычислений выполняется с помощью предоставленного симулятора. Шумную среду можно моделировать с помощью параметров симулятора.
Вопрос#
[ редактировать ]Язык, разработанный Microsoft для использования с Quantum Development Kit . [50]
ККЛ
[ редактировать ]Язык квантовых вычислений (QCL) — один из первых реализованных языков квантового программирования . [51] Наиболее важной особенностью QCL является поддержка пользовательских операторов и функций. Его синтаксис напоминает синтаксис языка программирования C , а его классические типы данных аналогичны примитивным типам данных в C. В одной программе можно комбинировать классический код и квантовый код.
qGCL
[ редактировать ]Язык квантовых защищенных команд (qGCL) был определен П. Зулиани в его докторской диссертации. Он основан на защищенном командном языке, созданном Эдсгером Дейкстрой .
Его можно охарактеризовать как язык спецификации квантовых программ.
КМАСМ
[ редактировать ]Quantum Macro Assembler (QMASM) — это язык низкого уровня, специфичный для квантовых отжигов, таких как D-Wave. [52]
Как
[ редактировать ]Язык квантового моделирования (Qmod) — это язык высокого уровня, который абстрагирует операции кубита на уровне вентиля, обеспечивая функциональный подход к реализации квантовых алгоритмов на квантовых регистрах. Этот язык является частью платформы Classiq и может использоваться напрямую с собственным синтаксисом, через Python SDK или с помощью визуального редактора. Все методы могут использовать преимущества более крупной библиотеки алгоритмов и эффективной оптимизации схемы.
В|СИ>
[ редактировать ]Q|SI> — это платформа, встроенная в язык .Net , поддерживающая квантовое программирование в квантовом расширении while-language. [44] [53] Эта платформа включает в себя компилятор квантового языка while. [54] и цепочка инструментов для моделирования квантовых вычислений, оптимизации квантовых схем, анализа завершения квантовых программ, [55] и верификация квантовых программ. [56] [57]
Квантовый псевдокод
[ редактировать ]Квантовый псевдокод, предложенный Э. Книлом, является первым формализованным языком описания квантовых алгоритмов . Она была введена и, более того, была тесно связана с моделью квантовой машины под названием Quantum Random Access Machine (QRAM).
Строительные леса
[ редактировать ]Scaffold — это C-подобный язык, который компилируется в QASM и OpenQASM. Он построен на основе инфраструктуры компилятора LLVM и предназначен для оптимизации кода Scaffold перед генерацией указанного набора команд. [58] [59]
Силк
[ редактировать ]Silq — это язык программирования высокого уровня для квантовых вычислений со строгой статической системой типов, разработанный в ETH Zürich . [60] [61]
Функциональные языки
[ редактировать ]В настоящее время предпринимаются усилия по разработке функциональных языков программирования для квантовых вычислений . Функциональные языки программирования хорошо подходят для рассуждений о программах. Примеры включают QPL Селинджера, [62] и Haskell -подобный язык QML Альтенкирха и Граттажа. [63] [64] Языки квантового программирования высшего порядка, основанные на лямбда-исчислении , были предложены Ван Тондером. [65] Селинджер и Валирон [66] и Арриги и Доуек. [67]
ЖИДКОСТЬ|>
[ редактировать ]LIQUi|> (произносится как жидкость ) — это расширение квантового моделирования на языке программирования F# . [68] В настоящее время он разрабатывается Группой квантовых архитектур и вычислений (QuArC). [69] часть усилий StationQ в Microsoft Research. LIQUi|> стремится позволить теоретикам экспериментировать с разработкой квантовых алгоритмов до того, как физические квантовые компьютеры станут доступны для использования. [70]
Он включает в себя язык программирования, алгоритмы оптимизации и планирования, а также квантовые симуляторы. LIQUi|> можно использовать для перевода квантового алгоритма, написанного в виде программы высокого уровня, в машинные инструкции низкого уровня для квантового устройства. [71]
КФК и КПЛ
[ редактировать ]QFC и QPL — два тесно связанных языка квантового программирования, определенные Питером Селинджером. Они отличаются только синтаксисом: QFC использует синтаксис блок-схемы, тогда как QPL использует текстовый синтаксис. Эти языки имеют классический поток управления, но могут работать с квантовыми или классическими данными. Селинджер дает денотационную семантику для этих языков в категории супероператоров .
QML
[ редактировать ]QML — это квантовый язык программирования, подобный Haskell, разработанный Альтенкирхом и Граттажем. [72] [63] В отличие от QPL Селинджера, этот язык воспринимает дублирование, а не удаление квантовой информации как примитивную операцию. Дублирование в этом контексте понимается как операция, которая отображает к , и не следует путать с невозможной операцией клонирования ; авторы утверждают, что это похоже на то, как совместное использование моделируется в классических языках. QML также вводит как классические, так и квантовые операторы управления, тогда как большинство других языков полагаются на классическое управление.
Операционная семантика для QML дается в терминах квантовых схем , а денотатационная семантика представлена в терминах супероператоров , и показано, что они согласуются. И операционная, и денотатационная семантика реализованы (классически) в Haskell. [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 г.
- ^ «Язык квантового ассемблера 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 .
- ^ Бертельс, К.; Альмудевер, CG; Хогабоам, JW; Ашраф, И.; Геррески, Г.Г.; Хаммасси, Н. (24 мая 2018 г.). «cQASM v1.0: На пути к общему квантовому ассемблеру». arXiv : 1805.09607v1 [ квант-ph ].
- ^ qiskit-openqasm: спецификация OpenQASM , International Business Machines, 4 июля 2017 г. , получено 6 июля 2017 г.
- ^ Смит, Роберт С.; Кертис, Майкл Дж.; Цзэн, Уильям Дж. (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 ].
- ^ Ханер, Томас; Штайгер, Дамиан С.; Своре, Криста ; Тройер, Матиас (2018). «Программная методология составления квантовых программ». Квантовая наука и технология . 3 (2): 020501. arXiv : 1604.01401 . Бибкод : 2018QS&T....3b0501H . дои : 10.1088/2058-9565/aaa5cc . ISSN 2058-9565 . S2CID 1922315 .
- ^ Перейти обратно: а б «ПАСКАЛЬ» . ПАСКАЛЬ .
- ^ Перейти обратно: а б "Дом" . АКТ | АЛЬПИЙСКИЕ КВАНТОВЫЕ ТЕХНОЛОГИИ .
- ^ «Добро пожаловать в документацию Grove! — Документация Grove 1.7.0» . grove-docs.readthedocs.io .
- ^ «Документация 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 г.
- ^ Перейти обратно: а б «Ускорение квантовых вычислений» . www.quantinuum.com .
- ^ «Плагины и экосистема — PennyLane» . pennylane.ai . Проверено 26 марта 2021 г.
- ^ «Мощность квантового компьютера протестирована онлайн» . 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 .
- ^ "Дом" .
- ^ Эфтимиу, Ставрос; Рамос-Кальдерер, Сержи; Браво-Прието, Карлос; Перес-Салинас, Адриан; Гарсия-Мартин, Диего; Гарсиа-Саес, Артур; Латорре, Хосе Игнасио; Каррацца, Стефано (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.
- ^ «qiskit.org» . qiskit.org .
- ^ «Обзор Кискита» . Проверено 10 февраля 2021 г.
- ^ Маккей, Дэвид С.; Александр, Томас; Белло, Лучано; Берчук, Майкл Дж.; Епископ Лев; Чен, Цзяинь; Чоу, Джерри М.; Корколес, Антонио Д.; Эггер, Дэниел; Филипп, Стефан; Гомес, Хуан; Тише, Майкл; Джавади-Абхари, Али; Мореда, Диего; Нация, Пол; Пауловикс, Брент; Уинстон, Эрик; Вуд, Кристофер Дж.; Вуттон, Джеймс; Гамбетта, Джей М. (2018). «Спецификации бэкенда Qiskit для экспериментов OpenQASM и OpenPulse». arXiv : 1809.03452 [ квант-ph ].
- ^ «Официальный сайт Qrisp» .
- ^ «Фонд Eclipse (веб-сайт)» .
- ^ «Фраунгофер ФОКУС (сайт)» .
- ^ «Документация по Azure Quantum, справочник по API QDK и Q# — Azure Quantum» . Learn.microsoft.com .
- ^ «Что такое Azure Quantum? — Azure Quantum» . Learn.microsoft.com . 11 января 2023 г.
- ^ «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 г.
- ^ «пыткет» . Гитхаб . 22 января 2022 г.
- ^ Бернхард Омер. «Язык программирования QCL» .
- ^ Гинек Млнаржик. «LanQ – квантовый императивный язык программирования» .
- ^ Перейти обратно: а б Гуань, Цзи; Дуань, Руньяо, Миншэн (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 г.
- ^ А. Балтаг и С. Сметс, «LQP: Динамическая логика квантовой информации» , Математические структуры в информатике 16 (3): 491-525, 2006.
- ^ Балтаг, Александру; Бергфельд, Йорт; Кисида, Кохей; Сак, Джошуа; Сметс, Соня; Чжун, Шэнъян (2014). «PLQP & Company: Разрешимая логика для квантовых алгоритмов» . Международный журнал теоретической физики . 53 (10): 3628–3647. Бибкод : 2014IJTP...53.3628B . дои : 10.1007/s10773-013-1987-3 . S2CID 254573992 .
- ^ «Программное обеспечение для языка Q» . 23 ноября 2001 года. Архивировано из оригинала 20 июня 2009 года . Проверено 20 июля 2017 г.
- ^ «Введение в пакет разработки Q# и Quantum — Azure Quantum» . Learn.microsoft.com . 30 марта 2023 г.
- ^ «QCL — язык программирования для квантовых компьютеров» . tuwien.ac.at . Проверено 20 июля 2017 г.
- ^ Скотт Пэкин, «Квантовый макроассемблер» , Материалы 20-й ежегодной конференции IEEE по высокопроизводительным экстремальным вычислениям, 2016 г.
- ^ Инь, Миншэн (январь 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 ].
- ^ Джавади-Абхари, Али. «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 .
- ^ Питер Селинджер, «На пути к квантовому языку программирования» , Mathematical Structures in Computer Science 14(4):527-586, 2004.
- ^ Перейти обратно: а б Джонатан Граттедж: 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 г.
- ^ «Языковой интегрированный симулятор квантовых операций» . 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.
- ^ «QML: функциональный квантовый язык программирования» . 26 сентября 2007 г. Архивировано из оригинала 26 сентября 2007 г.
- ^ Джонатан Граттедж, QML: функциональный квантовый язык программирования (компилятор). Архивировано 5 марта 2016 г. в Wayback Machine , 2005–2008 гг.
- ^ Филип Мэймин, «Расширение лямбда-исчисления для выражения рандомизированных и квантованных алгоритмов» , 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.
- Источник строительных лесов