Jump to content

Квантовое программирование

Квантовое программирование — это процесс разработки или сборки последовательностей инструкций, называемых квантовыми схемами, с использованием вентилей, переключателей и операторов для управления квантовой системой для достижения желаемого результата или результатов данного эксперимента. Алгоритмы квантовых схем могут быть реализованы на интегральных схемах, реализованы с помощью приборов или написаны на языке программирования для использования с квантовым компьютером или квантовым процессором.

В системах на базе квантовых процессоров квантовые языки программирования помогают выражать квантовые алгоритмы с использованием конструкций высокого уровня. [1] Эта область глубоко укоренена в философии открытого исходного кода , и в результате большая часть квантового программного обеспечения, обсуждаемого в этой статье, находится в свободном доступе как программное обеспечение с открытым исходным кодом . [2]

Квантовые компьютеры, например, основанные на протоколе KLM , модели линейных оптических квантовых вычислений (LOQC), используют квантовые алгоритмы (схемы), реализованные с помощью электроники, интегральных схем, приборов, датчиков и/или других физических средств. [ не проверено в теле ]

Другие схемы, предназначенные для экспериментов, связанных с квантовыми системами, могут быть основаны на приборах и датчиках. [ не проверено в теле ]

Квантовые наборы команд

[ редактировать ]

Наборы квантовых инструкций используются для превращения алгоритмов более высокого уровня в физические инструкции, которые могут выполняться на квантовых процессорах. Иногда эти инструкции специфичны для конкретной аппаратной платформы, например, ионных ловушек или сверхпроводящих кубитов .

Блэкберд

[ редактировать ]

Блэкберд [3] [4] — это квантовый набор команд и промежуточное представление, используемый Xanadu Quantum Technologies и Strawberry Fields. Он предназначен для представления квантовых программ с непрерывной переменной , которые могут работать на фотонном квантовом оборудовании.

cQASM, [5] также известный как общий QASM, представляет собой аппаратно-независимый язык квантовой ассемблера, который гарантирует совместимость между всеми инструментами квантовой компиляции и моделирования. Он был представлен лабораторией QCA Lab в TUDelft .

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, на машины, принадлежащие клиенту, или в классические пробоотборники. [ нужна ссылка ]

Пример кода с использованием projectq с Python

Пеннилейн

[ редактировать ]

Библиотека с открытым исходным кодом, Python разработанная Xanadu Quantum Technologies для дифференцируемого программирования квантовых компьютеров. [15] [16] [17] [18] PennyLane предоставляет пользователям возможность создавать модели с помощью TensorFlow , NumPy или PyTorch и соединять их с серверными модулями квантовых компьютеров, доступными от IBMQ , Google Quantum , Rigetti , Quantinuum. [19] и Alpine Quantum Technologies . [13] [20]

Персеваль

[ редактировать ]

Проект с открытым исходным кодом, созданный Quandela [ fr ] для проектирования фотонных квантовых схем и разработки квантовых алгоритмов на основе Python . Моделирование запускается либо на собственном компьютере пользователя, либо в облаке . Perceval также используется для подключения к облачному фотонному квантовому процессору Quandela . [21] [22]

Проект с открытым исходным кодом, разработанный в Институте теоретической физики 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 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) был определен П. Зулиани в его докторской диссертации. Он основан на защищенном командном языке, созданном Эдсгером Дейкстрой .

Его можно охарактеризовать как язык спецификации квантовых программ.

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 — это квантовый язык программирования, подобный 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
  1. ^ Ярослав Адам Мищак (2012). Структуры высокого уровня в квантовых вычислениях . Издательство Морган и Клейпул. ISBN  9781608458516 .
  2. ^ «Полный список квантовых проектов с открытым исходным кодом» . Гитхаб . Проверено 27 января 2022 г.
  3. ^ «Язык квантового ассемблера Blackbird — документация Blackbird 0.2.0» . Quantum-blackbird.readthedocs.io . Проверено 24 июня 2019 г.
  4. ^ Видбрук, Кристиан; Эми, Мэтью; Бергхольм, Вилле; Кесада, Николас; Исаак, Джош; Киллоран, Натан (11 марта 2019 г.). «Земляничные поля: программная платформа для фотонных квантовых вычислений». Квантовый . 3 : 129. arXiv : 1804.03159 . Бибкод : 2019Количество...3..129K . doi : 10.22331/кв-2019-03-11-129 . S2CID   54763305 .
  5. ^ Бертельс, К.; Альмудевер, CG; Хогабоам, JW; Ашраф, И.; Геррески, Г.Г.; Хаммасси, Н. (24 мая 2018 г.). «cQASM v1.0: На пути к общему квантовому ассемблеру». arXiv : 1805.09607v1 [ квант-ph ].
  6. ^ qiskit-openqasm: спецификация OpenQASM , International Business Machines, 4 июля 2017 г. , получено 6 июля 2017 г.
  7. ^ Смит, Роберт С.; Кертис, Майкл Дж.; Цзэн, Уильям Дж. (2016). «Практическая архитектура квантового набора команд». arXiv : 1608.03355 [ квант-ph ].
  8. ^ МакКлин, Джаррод Р.; Ромеро, Джонатан; Бэббуш, Райан; Аспуру-Гузик, Алан (4 февраля 2016 г.). «Теория вариационных гибридных квантово-классических алгоритмов». Новый журнал физики . 18 (2): 023023. arXiv : 1509.04279 . Бибкод : 2016NJPh...18b3023M . дои : 10.1088/1367-2630/18/2/023023 . ISSN   1367-2630 . S2CID   92988541 .
  9. ^ Рубин, Николас С.; Кертис, Майкл Дж.; Цзэн, Уильям Дж. (2016). «Гибридный классический/квантовый подход для крупномасштабных исследований квантовых систем с помощью теории вложения матрицы плотности». arXiv : 1610.06910 [ квант-ph ].
  10. ^ Фархи, Эдвард; Голдстоун, Джеффри; Гутманн, Сэм (2014). «Квантовый приближенный алгоритм оптимизации». arXiv : 1411.4028 [ квант-ph ].
  11. ^ Ханер, Томас; Штайгер, Дамиан С.; Своре, Криста ; Тройер, Матиас (2018). «Программная методология составления квантовых программ». Квантовая наука и технология . 3 (2): 020501. arXiv : 1604.01401 . Бибкод : 2018QS&T....3b0501H . дои : 10.1088/2058-9565/aaa5cc . ISSN   2058-9565 . S2CID   1922315 .
  12. ^ Перейти обратно: а б «ПАСКАЛЬ» . ПАСКАЛЬ .
  13. ^ Перейти обратно: а б "Дом" . АКТ | АЛЬПИЙСКИЕ КВАНТОВЫЕ ТЕХНОЛОГИИ .
  14. ^ «Добро пожаловать в документацию Grove! — Документация Grove 1.7.0» . grove-docs.readthedocs.io .
  15. ^ «Документация PennyLane — документация PennyLane 0.14.1» . pennylane.readthedocs.io . Проверено 26 марта 2021 г.
  16. ^ «AWS присоединяется к PennyLane, платформе с открытым исходным кодом, которая объединяет машинное обучение с квантовыми вычислениями» . КремниевыйУГОЛ . 17 февраля 2021 г. . Проверено 26 марта 2021 г.
  17. ^ «Проект недели с открытым исходным кодом SD Times: PennyLane» . СД Таймс . 26 февраля 2021 г. . Проверено 26 марта 2021 г.
  18. ^ Саламоне, Сальваторе (13 декабря 2020 г.). «Сводка новостей аналитики в реальном времени за неделю, заканчивающуюся 12 декабря» . RTInsights . Проверено 26 марта 2021 г.
  19. ^ Перейти обратно: а б «Ускорение квантовых вычислений» . www.quantinuum.com .
  20. ^ «Плагины и экосистема — PennyLane» . pennylane.ai . Проверено 26 марта 2021 г.
  21. ^ «Мощность квантового компьютера протестирована онлайн» . Le Monde.fr . Мир. 22 ноября 2022 г.
  22. ^ Эртель, Николя; Форильяс, Эндрю; Глиниасти Григорий; Ле Биан, Рафаэль; Малерб, Себастьен; Пайяс, Марсо; Бертаси, Эрик; Бурдонкль, Борис; Эмерио, Пьер-Эммануэль; Межер, Равад; Музыка, Люк; Белабас, Надя; Валирон, Бенуа; Сенелларт, Паскаль; Мэнсфилд, Шейн; Сенелларт, Жан (21 февраля 2023 г.). «Персеваль: программная платформа для фотонных квантовых вычислений с дискретными переменными» . Квантовый . 7 : 931. arXiv : 2204.00602 . Бибкод : 2023Quant...7..931H . doi : 10.22331/q-2023-02-21-931 . S2CID   247922568 .
  23. ^ "Дом" .
  24. ^ Эфтимиу, Ставрос; Рамос-Кальдерер, Сержи; Браво-Прието, Карлос; Перес-Салинас, Адриан; Гарсия-Мартин, Диего; Гарсиа-Саес, Артур; Латорре, Хосе Игнасио; Каррацца, Стефано (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 .
  25. ^ Эфтимиу, Ставрос; Лазарин, Марко; Паскуале, Андреа; Каррацца, Стефано (22 сентября 2022 г.). «Квантовое моделирование с своевременной компиляцией» . Квантовый . 6 : 814. arXiv : 2203.08826 . Бибкод : 2022Quant...6..814E . doi : 10.22331/q-2022-09-22-814 . S2CID   247518955 .
  26. ^ «Киболаб» . 2 ноября 2022 г. — через GitHub.
  27. ^ «Кибокал» . 1 ноября 2022 г. — через GitHub.
  28. ^ «qiskit.org» . qiskit.org .
  29. ^ «Обзор Кискита» . Проверено 10 февраля 2021 г.
  30. ^ Маккей, Дэвид С.; Александр, Томас; Белло, Лучано; Берчук, Майкл Дж.; Епископ Лев; Чен, Цзяинь; Чоу, Джерри М.; Корколес, Антонио Д.; Эггер, Дэниел; Филипп, Стефан; Гомес, Хуан; Тише, Майкл; Джавади-Абхари, Али; Мореда, Диего; Нация, Пол; Пауловикс, Брент; Уинстон, Эрик; Вуд, Кристофер Дж.; Вуттон, Джеймс; Гамбетта, Джей М. (2018). «Спецификации бэкенда Qiskit для экспериментов OpenQASM и OpenPulse». arXiv : 1809.03452 [ квант-ph ].
  31. ^ «Официальный сайт Qrisp» .
  32. ^ «Фонд Eclipse (веб-сайт)» .
  33. ^ «Фраунгофер ФОКУС (сайт)» .
  34. ^ «Документация по Azure Quantum, справочник по API QDK и Q# — Azure Quantum» . Learn.microsoft.com .
  35. ^ «Что такое Azure Quantum? — Azure Quantum» . Learn.microsoft.com . 11 января 2023 г.
  36. ^ «Strawberry Fields — документация Strawberry Fields 0.8.0» . Strawberryfields.readthedocs.io . Проверено 25 сентября 2018 г.
  37. ^ Киллоран, Натан; Исаак, Джош; Кесада, Николас; Бергхольм, Вилле; Эми, Мэтью; Видбрук, Кристиан (2019). «Земляничные поля: программная платформа для фотонных квантовых вычислений». Квантовый . 3 : 129. arXiv : 1804.03159 . Бибкод : 2019Количество...3..129K . doi : 10.22331/кв-2019-03-11-129 . S2CID   54763305 .
  38. ^ Видбрук, Кристиан; Пирандола, Стефано; Гарсия-Патрон, Рауль; Серф, Николас Дж.; Ральф, Тимоти К.; Шапиро, Джеффри Х.; Ллойд, Сет (1 мая 2012 г.). «Гауссова квантовая информация». Обзоры современной физики . 84 (2): 621–669. arXiv : 1110.3234 . Бибкод : 2012РвМП...84..621Вт . дои : 10.1103/RevModPhys.84.621 . S2CID   119250535 .
  39. ^ «Оборудование — Клубничные поля» . Strawberryfields.ai . Проверено 26 марта 2021 г.
  40. ^ «В гонке за сотнями кубитов фотоны могут иметь «квантовое преимущество» » . IEEE Spectrum: Новости технологий, техники и науки . 5 марта 2021 г. Проверено 26 марта 2021 г.
  41. ^ «пыткет» . Гитхаб . 22 января 2022 г.
  42. ^ Бернхард Омер. «Язык программирования QCL» .
  43. ^ Гинек Млнаржик. «LanQ – квантовый императивный язык программирования» .
  44. ^ Перейти обратно: а б Гуань, Цзи; Дуань, Руньяо, Миншэн (9 мая 2017 . Лю, Шусен, Ли ; г. ) 1300. arXiv : 1710.09500 . doi : 10.1360 N112017-00095   : /
  45. ^ Да Роса, Эвандро Шагас Рибейру; Де Сантьяго, Рафаэль (31 января 2022 г.). «Кетское квантовое программирование» . Журнал ACM о новых технологиях в вычислительных системах . 18 (1): 1–25. дои : 10.1145/3474224 . ISSN   1550-4832 .
  46. ^ «Кетское квантовое программирование» . Quantket.org . Проверено 18 мая 2023 г.
  47. ^ А. Балтаг и С. Сметс, «LQP: Динамическая логика квантовой информации» , Математические структуры в информатике 16 (3): 491-525, 2006.
  48. ^ Балтаг, Александру; Бергфельд, Йорт; Кисида, Кохей; Сак, Джошуа; Сметс, Соня; Чжун, Шэнъян (2014). «PLQP & Company: Разрешимая логика для квантовых алгоритмов» . Международный журнал теоретической физики . 53 (10): 3628–3647. Бибкод : 2014IJTP...53.3628B . дои : 10.1007/s10773-013-1987-3 . S2CID   254573992 .
  49. ^ «Программное обеспечение для языка Q» . 23 ноября 2001 года. Архивировано из оригинала 20 июня 2009 года . Проверено 20 июля 2017 г.
  50. ^ «Введение в пакет разработки Q# и Quantum — Azure Quantum» . Learn.microsoft.com . 30 марта 2023 г.
  51. ^ «QCL — язык программирования для квантовых компьютеров» . tuwien.ac.at . Проверено 20 июля 2017 г.
  52. ^ Скотт Пэкин, «Квантовый макроассемблер» , Материалы 20-й ежегодной конференции IEEE по высокопроизводительным экстремальным вычислениям, 2016 г.
  53. ^ Инь, Миншэн (январь 2012 г.). «Логика Флойда-Хора для квантовых программ» . АКМ Транс. Программа. Ланг. Сист . 33 (6): 19:1–19:49. дои : 10.1145/2049706.2049708 . ISSN   0164-0925 . S2CID   416960 .
  54. ^ Инь, Миншэн; Фэн, Юань (2010). «Язык блок-схем для квантового программирования» . Транзакции IEEE по разработке программного обеспечения . 37 (4): 466–485. дои : 10.1109/TSE.2010.94 . ISSN   0098-5589 . S2CID   5879273 .
  55. ^ Инь, Миншэн; Ю, Нэнкун; Фэн, Юань; Дуань, Руняо (2013). «Верификация квантовых программ». Наука компьютерного программирования . 78 (9): 1679–1700. arXiv : 1106.4063 . дои : 10.1016/j.scico.2013.03.016 . S2CID   18913620 .
  56. ^ Инь, Миншэн; Инь, Шэнган; Ву, Сяоди (2017), «Инварианты квантовых программ: характеристики и генерация», Уведомления ACM SIGPLAN , 52 : 818–832, doi : 10.1145/3093333.3009840 , hdl : 10453/127333
  57. ^ Лю, Тао; Ли, Янцзя; Ван, Шулин; Инь, Миншэн; Чжан, Найджун (2016). «Доказательство теорем квантовой логики Хоара и ее приложений». arXiv : 1601.03835 [ cs.LO ].
  58. ^ Джавади-Абхари, Али. «Scaffold: квантовый язык программирования» . Принстонский университет, факультет компьютерных наук . Принстонский университет . Проверено 22 сентября 2020 г.
  59. ^ Литтекен, Эндрю (28 мая 2020 г.). «Обновленный компилятор квантовых исследований на основе LLVM с дальнейшей поддержкой OpenQASM» . Квантовая наука и технология . 5 (3): 034013. Бибкод : 2020QS&T....5c4013L . дои : 10.1088/2058-9565/ab8c2c . ОСТИ   1803951 . S2CID   219101628 .
  60. ^ «Что такое Силк?» . silq.ethz.ch. ​Проверено 21 июня 2020 г.
  61. ^ Бичсел, Бенджамин; Баадер, Максимилиан; Гер, Тимон; Вечев, Мартин (11 июня 2020 г.). «Silq: квантовый язык высокого уровня с безопасными вычислениями и интуитивной семантикой». Материалы 41-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . Лондон, Великобритания: ACM. стр. 286–300. дои : 10.1145/3385412.3386007 . ISBN  978-1-4503-7613-6 . S2CID   219397029 .
  62. ^ Питер Селинджер, «На пути к квантовому языку программирования» , Mathematical Structures in Computer Science 14(4):527-586, 2004.
  63. ^ Перейти обратно: а б Джонатан Граттедж: QML Research (веб-сайт)
  64. ^ Т. Альтенкирх, В. Белавкин, Дж. Граттаж, А. Грин, А. Сабри, Дж. К. Виццотто, QML: функциональный квантовый язык программирования. Архивировано 10 июля 2006 г. на Wayback Machine (веб-сайт).
  65. ^ Андре ван Тондер, «Лямбда-исчисление для квантовых вычислений» , SIAM J. Comput., 33 (5), 1109–1135. (27 страниц), 2004 г. Также доступно на сайте arXiv:quant-ph/0307150.
  66. ^ Питер Селинджер и Бенуа Валирон, «Лямбда-исчисление для квантовых вычислений с классическим управлением» , Mathematical Structures in Computer Science 16(3):527-552, 2006.
  67. ^ Пабло Арриги, Жиль Довек, «Линейно-алгебраическое лямбда-исчисление: высший порядок, кодировки и слияние» , 2006 г.
  68. ^ «Языковой интегрированный симулятор квантовых операций» . github.io . Проверено 20 июля 2017 г.
  69. ^ Группа квантовых архитектур и вычислений (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/ , 2011 г.
  70. ^ «СтанцияQ» . microsoft.com . Проверено 20 июля 2017 г.
  71. ^ «Интегрированные в язык квантовые операции: LIQUi|>» . Майкрософт . 2016.
  72. ^ «QML: функциональный квантовый язык программирования» . 26 сентября 2007 г. Архивировано из оригинала 26 сентября 2007 г.
  73. ^ Джонатан Граттедж, QML: функциональный квантовый язык программирования (компилятор). Архивировано 5 марта 2016 г. в Wayback Machine , 2005–2008 гг.
  74. ^ Филип Мэймин, «Расширение лямбда-исчисления для выражения рандомизированных и квантованных алгоритмов» , 1996 г.
  75. ^ Андре ван Тондер. «Лямбда-исчисление для квантовых вычислений (веб-сайт)» . Архивировано из оригинала 5 марта 2016 года . Проверено 2 октября 2007 г.
  76. ^ Питер Селинджер, Бенуит Валирон, «Квантовое лямбда-исчисление»
  77. ^ «Язык Квипера» .
  78. ^ Александр С. Грин; Питер ЛеФану Ламсдейн; Нил Дж. Росс; Питер Селинджер; Бенуа Валирон. «Язык Квипер (веб-сайт)» .
  79. ^ Александр С. Грин; Питер ЛеФану Ламсдейн; Нил Дж. Росс; Питер Селинджер; Бенуа Валирон (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 (электронная книга).
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5d59888bf3d824a917347fd0382fb58f__1722779100
URL1:https://arc.ask3.ru/arc/aa/5d/8f/5d59888bf3d824a917347fd0382fb58f.html
Заголовок, (Title) документа по адресу, URL1:
Quantum programming - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)