stringtranslate.com

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

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

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

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

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

Квантовые наборы инструкций

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

Черный дрозд

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

cQASM

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

OpenQASM

OpenQASM [6] — это промежуточное представление, представленное IBM для использования с Qiskit и IBM Q Experience .

Квил

Quil — это архитектура набора инструкций для квантовых вычислений, которая впервые представила общую модель квантовой/классической памяти. Она была представлена ​​Робертом Смитом, Майклом Кертисом и Уильямом Зенгом в работе A Practical Quantum Instruction Set Architecture . [7] Многие квантовые алгоритмы (включая квантовую телепортацию , квантовую коррекцию ошибок , моделирование, [8] [9] и алгоритмы оптимизации [10] ) требуют архитектуры общей памяти.

Комплекты для разработки квантового программного обеспечения

Комплекты для разработки квантового программного обеспечения предоставляют наборы инструментов для создания и управления квантовыми программами. [11] Они также предоставляют средства для моделирования квантовых программ или подготовки их к запуску с использованием облачных квантовых устройств и самостоятельных квантовых устройств.

SDK с доступом к квантовым процессорам

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

Cirq

Проект с открытым исходным кодом, разработанный Google , который использует язык программирования Python для создания и управления квантовыми схемами. Программы, написанные на Cirq, могут быть запущены на IonQ , Pasqal, [12] Rigetti и Alpine Quantum Technologies. [13]

Классик

Облачная квантовая IDE, разработанная Classiq, использует квантовый язык высокого уровня Qmod для генерации масштабируемых и эффективных квантовых схем с аппаратно-ориентированным движком синтеза, который может быть развернут в широком диапазоне QPU. Платформа включает большую библиотеку квантовых алгоритмов.

Лес

Проект с открытым исходным кодом, разработанный Rigetti , который использует язык программирования Python для создания и управления квантовыми схемами. Результаты получаются либо с помощью симуляторов, либо с помощью прототипов квантовых устройств, предоставленных Rigetti. Помимо возможности создания программ с использованием базовых квантовых операций, в пакете Grove доступны алгоритмы более высокого уровня. [14] Forest основан на наборе инструкций Quil .

MindQuantum

MindQuantum — это квантовая вычислительная среда на основе MindSpore , ориентированная на реализацию алгоритмов NISQ . [15] [16] [17]

Океан

Набор инструментов с открытым исходным кодом, разработанный D-Wave. Написанный в основном на языке программирования Python, он позволяет пользователям формулировать задачи в форматах Ising Model и Quadratic Unconstrained Binary Optimization (QUBO). Результаты можно получить, отправив их в онлайн-квантовый компьютер в Leap, в среду квантовых приложений D-Wave в реальном времени, на машины, принадлежащие клиентам, или в классические сэмплеры. [ необходима цитата ]

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

ПенниЛейн

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

Персеваль

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

ПроектQ

Проект с открытым исходным кодом, разработанный в Институте теоретической физики ETH , который использует язык программирования Python для создания и управления квантовыми схемами. [26] Результаты получаются либо с помощью симулятора, либо путем отправки заданий на квантовые устройства IBM.

Цибо

API полного стека с открытым исходным кодом для квантового моделирования, управления квантовым оборудованием и калибровки, разработанный несколькими исследовательскими лабораториями, включая QRC , CQT и INFN . Qibo — это модульная структура, которая включает несколько бэкэндов для квантового моделирования и управления оборудованием. [27] [28] Целью этого проекта является предоставление платформенно-независимой структуры управления квантовым оборудованием с драйверами для нескольких инструментов [29] и инструментами для квантовой калибровки, характеризации и проверки. [30] Эта структура фокусируется на автономных квантовых устройствах, упрощая разработку программного обеспечения, требуемого в лабораториях.

Qiskit

Проект с открытым исходным кодом, разработанный IBM . [31] Квантовые схемы создаются и управляются с помощью Python . Результаты получаются либо с помощью симуляторов, которые работают на собственном устройстве пользователя, симуляторов, предоставленных IBM, либо прототипов квантовых устройств, предоставленных IBM. Помимо возможности создания программ с использованием базовых квантовых операций, в специализированных пакетах доступны инструменты более высокого уровня для алгоритмов и бенчмаркинга. [32] Qiskit основан на стандарте OpenQASM для представления квантовых схем. Он также поддерживает управление уровнем импульсов квантовых систем с помощью стандарта QiskitPulse. [33]

Крисп

Qrisp [34] — проект с открытым исходным кодом, координируемый Eclipse Foundation [35] и разработанный в программировании Python компанией Fraunhofer FOKUS [36] Qrisp — это язык программирования высокого уровня для создания и компиляции квантовых алгоритмов. Его структурированная модель программирования обеспечивает масштабируемую разработку и обслуживание. Выразительный синтаксис основан на переменных вместо кубитов, с QuantumVariable в качестве основного класса и функциями вместо вентилей. Дополнительные инструменты, такие как производительный симулятор и автоматическое невычисление, дополняют обширную структуру. Кроме того, он не зависит от платформы, поскольку предлагает альтернативную компиляцию элементарных функций вплоть до уровня схемы на основе наборов вентилей, специфичных для устройства.

Комплект для квантовой разработки

Проект, разработанный Microsoft [37] как часть .NET Framework . Квантовые программы могут быть написаны и запущены в Visual Studio и VSCode с использованием квантового языка программирования Q#. Программы, разработанные в QDK, могут быть запущены на Microsoft Azure Quantum [ 38] и запущены на квантовых компьютерах Quantinum [22] IonQ и Pasqal. [12]

Клубничные поля

Библиотека Python с открытым исходным кодом, разработанная Xanadu Quantum Technologies для проектирования, моделирования и оптимизации квантовых оптических схем с непрерывными переменными (CV) . [39] [40] Предоставляются три симулятора — один на основе Фока , один с использованием гауссовой формулировки квантовой оптики, [41] и один с использованием библиотеки машинного обучения TensorFlow . Strawberry Fields также является библиотекой для выполнения программ на квантовом фотонном оборудовании Xanadu. [42] [43]

т|кет>

Среда квантового программирования и оптимизирующий компилятор, разработанные Cambridge Quantum Computing , предназначенные для симуляторов и нескольких квантовых аппаратных бэкэндов, выпущенные в декабре 2018 года. [44]

Квантовые языки программирования

Существует две основные группы квантовых языков программирования: императивные квантовые языки программирования и функциональные квантовые языки программирования.

Императивные языки

Наиболее яркими представителями императивных языков являются QCL, [45] LanQ [46] и Q|SI>. [47]

Кет

Ket [48] — это встроенный язык с открытым исходным кодом, разработанный для облегчения квантового программирования, использующий знакомый синтаксис и простоту Python. Он служит неотъемлемым компонентом платформы квантового программирования Ket, [49] легко интегрируясь с библиотекой времени выполнения Rust и квантовым симулятором. Поддерживаемый Quantuloop, проект делает акцент на доступности и универсальности для исследователей и разработчиков. Следующий пример демонстрирует реализацию состояния Белла с использованием Ket:

из  кет  импорт  *a ,  b  =  quant ( 2 )  # Выделяем два квантовых битаH ( a )  # Поместить кубит `a` в суперпозициюcnot ( a ,  b )  # Запутать два кубита в состоянии Беллаm_a  =  measure ( a )  # Измеряем кубит `a`, также разрушая кубит `b`m_b  =  measure ( b )  # Измерение кубита `b`# Утверждаем, что измерение обоих кубитов всегда будет одинаковымутверждать  m_a.value == m_b.value  

ЛКП

Логика квантовых программ (LQP) — это динамическая квантовая логика, способная выражать важные особенности квантовых измерений и унитарных эволюций многочастичных состояний, а также дает логические характеристики различных форм запутанности. Логика использовалась для спецификации и проверки корректности различных протоколов в квантовых вычислениях. [50] [51]

Q-язык

Q Language — второй реализованный императивный квантовый язык программирования. [52] Q Language был реализован как расширение языка программирования C++. Он предоставляет классы для базовых квантовых операций, таких как QHadamard, QFourier, QNot и QSwap, которые являются производными от базового класса Qop. Новые операторы могут быть определены с использованием механизма классов C++.

Квантовая память представлена ​​классом Qreg.

Qreg x1 ; // 1-кубитный квантовый регистр с начальным значением 0 Qreg x2 ( 2 , 0 ); // 2-кубитный квантовый регистр с начальным значением 0    

Процесс вычисления выполняется с использованием предоставленного симулятора. Шумные среды могут быть смоделированы с использованием параметров симулятора.

Вопрос №

Язык, разработанный корпорацией Microsoft для использования с Quantum Development Kit. [53]

ККЛ

Quantum Computation Language (QCL) — один из первых реализованных квантовых языков программирования . [54] Наиболее важной особенностью QCL является поддержка определяемых пользователем операторов и функций. Его синтаксис напоминает синтаксис языка программирования C , а его классические типы данных аналогичны примитивным типам данных в C. Можно объединить классический код и квантовый код в одной программе.

qGCL

Квантовый защищенный командный язык (qGCL) был определен П. Зулиани в его докторской диссертации. Он основан на защищенном командном языке, созданном Эдсгером Дейкстрой .

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

QMASM

Квантовый макроассемблер (QMASM) — это низкоуровневый язык, специфичный для квантовых отжигателей, таких как D-Wave. [55]

Qmod

Язык квантового моделирования (Qmod) — это язык высокого уровня, который абстрагируется от работы кубита на уровне вентилей, предоставляя функциональный подход к реализации квантовых алгоритмов на квантовых регистрах. Язык является частью платформы Classiq и может использоваться напрямую с его собственным синтаксисом, через Python SDK или с визуальным редактором, все методы могут использовать преимущества более обширной библиотеки алгоритмов и эффективной оптимизации схем.

В|СИ>

Q|SI> — это платформа, встроенная в язык .Net, поддерживающая квантовое программирование в квантовом расширении языка while. [47] [56] Эта платформа включает в себя компилятор квантового языка while [57] и цепочку инструментов для моделирования квантовых вычислений, оптимизации квантовых схем, анализа завершения квантовых программ [58] и проверки квантовых программ. [59] [60]

Квантовый псевдокод

Квантовый псевдокод, предложенный Э. Книллом, является первым формализованным языком описания квантовых алгоритмов . Он был введен и, более того, тесно связан с моделью квантовой машины, называемой квантовой машиной с произвольным доступом (QRAM).

Строительные леса

Scaffold — это язык типа C, который компилируется в QASM и OpenQASM. Он построен на основе инфраструктуры компилятора LLVM для выполнения оптимизаций кода Scaffold перед генерацией указанного набора инструкций. [61] [62]

Силк

Silq — это высокоуровневый язык программирования для квантовых вычислений со строгой статической системой типов, разработанный в ETH Zürich . [63] [64]

Функциональные языки

В настоящее время ведутся работы по разработке функциональных языков программирования для квантовых вычислений . Функциональные языки программирования хорошо подходят для рассуждений о программах. Примерами служат QPL Селингера [65] и язык QML, подобный Haskell , Альтенкирха и Граттэджа. [66] [67] Квантовые языки программирования более высокого порядка, основанные на лямбда-исчислении , были предложены ван Тондером [68], Селингером и Валироном [69] , а также Арриги и Доуэком [70] .

LIQUi|>

LIQUi|> (произносится как «ликвид ») — расширение квантового моделирования на языке программирования F# . [71] В настоящее время оно разрабатывается группой квантовых архитектур и вычислений (QuArC) [72] в рамках проекта StationQ в Microsoft Research. LIQUi|> стремится позволить теоретикам экспериментировать с разработкой квантовых алгоритмов до того, как физические квантовые компьютеры станут доступны для использования. [73]

Он включает в себя язык программирования, алгоритмы оптимизации и планирования, а также квантовые симуляторы. LIQUi|> может использоваться для перевода квантового алгоритма, написанного в форме высокоуровневой программы, в низкоуровневые машинные инструкции для квантового устройства. [74]


QFC и QPL

QFC и QPL — два тесно связанных квантовых языка программирования, определенных Питером Селинджером. Они отличаются только синтаксисом: QFC использует синтаксис блок-схем, тогда как QPL использует текстовый синтаксис. Эти языки имеют классический поток управления, но могут работать с квантовыми или классическими данными. Селинджер дает денотационную семантику для этих языков в категории супероператоров .

QML

QML — это квантовый язык программирования, подобный Haskell, разработанный Альтенкирхом и Граттажем. [75] [66] В отличие от QPL Селинджера, этот язык рассматривает дублирование, а не отбрасывание квантовой информации как примитивную операцию. Дублирование в этом контексте понимается как операция, которая отображается на , и ее не следует путать с невозможной операцией клонирования ; авторы утверждают, что это похоже на то, как моделируется совместное использование в классических языках. QML также вводит как классические, так и квантовые операторы управления, тогда как большинство других языков полагаются на классическое управление.

Операционная семантика для QML дана в терминах квантовых схем , в то время как денотационная семантика представлена ​​в терминах супероператоров , и показано, что они согласуются. Как операционная, так и денотационная семантика были реализованы (классически) в Haskell. [76]

Квантовые лямбда-исчисления

Квантовые лямбда-исчисления являются расширениями классического лямбда-исчисления, введенного Алонзо Чёрчем и Стивеном Коулом Клини в 1930-х годах. Целью квантовых лямбда-исчислений является расширение квантовых языков программирования с помощью теории функций высшего порядка .

Первая попытка определить квантовое лямбда-исчисление была предпринята Филиппом Меймином в 1996 году. [77] Его лямбда-q-исчисление достаточно мощное, чтобы выразить любое квантовое вычисление. Однако этот язык может эффективно решать NP-полные задачи и, следовательно, кажется строго сильнее стандартных квантовых вычислительных моделей (таких как квантовая машина Тьюринга или модель квантовой цепи ). Поэтому лямбда-q-исчисление Меймина, вероятно, нереализуемо на физическом устройстве [ требуется ссылка ] .

В 2003 году Андре ван Тондер определил расширение лямбда-исчисления, пригодное для доказательства корректности квантовых программ. Он также предоставил реализацию на языке программирования Scheme . [78]

В 2004 году Селинджер и Валирон определили строго типизированное лямбда-исчисление для квантовых вычислений с системой типов, основанной на линейной логике . [79]

Квиппер

Quipper был опубликован в 2013 году. [80] [81] Он реализован как встроенный язык, использующий Haskell в качестве основного языка. [82] По этой причине квантовые программы, написанные на Quipper, пишутся на Haskell с использованием предоставленных библиотек. Например, следующий код реализует подготовку суперпозиции

импортировать Quipper spos :: Bool -> Circ Qubit spos b = do q <- qinit b r <- hadamard q return r                  

Ссылки

  1. ^ Ярослав Адам Мишчак (2012). Высокоуровневые структуры в квантовых вычислениях . Morgan & Claypool Publishers. ISBN 9781608458516.
  2. ^ "Полный список квантовых проектов с открытым исходным кодом". Github . Получено 27 января 2022 г.
  3. ^ "Blackbird Quantum Assembly Language — документация Blackbird 0.2.0". quantum-blackbird.readthedocs.io . Получено 24 июня 2019 г. .
  4. ^ Видбрук, Кристиан; Эми, Мэтью; Бергхольм, Вилле; Кесада, Николас; Айзак, Джош; Киллоран, Натан (11 марта 2019 г.). «Strawberry Fields: Программная платформа для фотонных квантовых вычислений». Quantum . 3 : 129. arXiv : 1804.03159 . Bibcode :2019Quant...3..129K. doi :10.22331/q-2019-03-11-129. S2CID  54763305.
  5. ^ Бертельс, К.; Альмудевер, К.Г.; Хогабоам, Дж.В.; Ашраф, И.; Геррески, Г.Г.; Хаммасси, Н. (24 мая 2018 г.). «cQASM v1.0: На пути к общему языку квантовой ассемблера». arXiv : 1805.09607v1 [quant-ph].
  6. ^ qiskit-openqasm: спецификация OpenQASM, International Business Machines, 4 июля 2017 г. , получено 6 июля 2017 г.
  7. ^ Смит, Роберт С.; Кертис, Майкл Дж.; Зенг, Уильям Дж. (2016). «Практическая архитектура набора квантовых инструкций». arXiv : 1608.03355 [quant-ph].
  8. ^ МакКлин, Джаррод Р.; Ромеро, Джонатан; Баббуш, Райан; Аспуру-Гузик, Алан (4 февраля 2016 г.). «Теория вариационных гибридных квантово-классических алгоритмов». New Journal of Physics . 18 (2): 023023. arXiv : 1509.04279 . Bibcode : 2016NJPh...18b3023M. doi : 10.1088/1367-2630/18/2/023023. ISSN  1367-2630. S2CID  92988541.
  9. ^ Рубин, Николас К.; Кертис, Майкл Дж.; Зенг, Уильям Дж. (2016). «Гибридный классико-квантовый подход для крупномасштабных исследований квантовых систем с теорией вложения матрицы плотности». arXiv : 1610.06910 [quant-ph].
  10. ^ Фархи, Эдвард; Голдстоун, Джеффри; Гутманн, Сэм (2014). «Квантовый алгоритм приближенной оптимизации». arXiv : 1411.4028 [quant-ph].
  11. ^ Хэнэр, Томас; Штайгер, Дамиан С.; Своре, Криста ; Тройер, Маттиас (2018). «Методология программного обеспечения для компиляции квантовых программ». Квантовая наука и технологии . 3 (2): 020501. arXiv : 1604.01401 . Bibcode : 2018QS&T....3b0501H. doi : 10.1088/2058-9565/aaa5cc. ISSN  2058-9565. S2CID  1922315.
  12. ^ ab "ПАСКАЛЬ". ПАСКАЛЬ .
  13. ^ ab "Главная". AQT | ALPINE QUANTUM TECHNOLOGIES .
  14. ^ «Добро пожаловать в документацию по Grove! — Документация Grove 1.7.0». grove-docs.readthedocs.io .
  15. ^ «Документация MindSpore Quantum». www.mindspore.cn/mindquantum .
  16. ^ Сюй, Сюйшэн и др. (2024). «MindSpore Quantum: удобная для пользователя, высокопроизводительная и совместимая с ИИ квантовая вычислительная среда». arXiv : 2406.17248 [quant-ph].
  17. ^ "mindquantum". github.com .
  18. ^ "PennyLane Documentation — PennyLane 0.14.1 documentation". pennylane.readthedocs.io . Получено 26 марта 2021 г. .
  19. ^ "AWS присоединяется к PennyLane, платформе с открытым исходным кодом, которая объединяет машинное обучение с квантовыми вычислениями". SiliconANGLE . 17 февраля 2021 г. . Получено 26 марта 2021 г. .
  20. ^ "Проект недели с открытым исходным кодом SD Times: PennyLane". SD Times . 26 февраля 2021 г. Получено 26 марта 2021 г.
  21. ^ Саламоне, Сальваторе (13 декабря 2020 г.). «Обзор новостей аналитики в реальном времени за неделю, заканчивающуюся 12 декабря». RTInsights . Получено 26 марта 2021 г.
  22. ^ ab «Ускорение квантовых вычислений». www.quantinuum.com .
  23. ^ "Плагины и экосистема — PennyLane". pennylane.ai . Получено 26 марта 2021 г. .
  24. ^ "La puissance d'un ordinateur quantique testée en ligne (Мощность квантового компьютера, проверенная онлайн)" . Le Monde.fr . Ле Монд. 22 ноября 2022 г.
  25. ^ Эртель, Николя; Фириллас, Андреас; де Глиниасти, Грегуар; Ле Биан, Рафаэль; Малерб, Себастьен; Пайяс, Марсо; Бертаси, Эрик; Бурдонкль, Борис; Эмерио, Пьер-Эммануэль; Межер, Равад; Музыка, Лука; Белабас, Надя; Валирон, Бенуа; Сенелларт, Паскаль; Мэнсфилд, Шейн; Сенелларт, Жан (21 февраля 2023 г.). «Персеваль: программная платформа для фотонных квантовых вычислений с дискретными переменными». Квантовый . 7 : 931. arXiv : 2204.00602 . Бибкод : 2023Количество...7..931H. doi : 10.22331/q-2023-02-21-931. S2CID  247922568.
  26. ^ «Главная».
  27. ^ Эфтимиу, Ставрос; Рамос-Кальдерер, Сержи; Браво-Прието, Карлос; Перес-Салинас, Адриан; Гарсиа-Мартин, Диего; Гарсиа-Саес, Артур; Латорре, Хосе Игнасио; Каррацца, Стефано (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.
  28. ^ Эфтимиу, Ставрос; Лаззарин, Марко; Паскуале, Андреа; Каррацца, Стефано (22 сентября 2022 г.). «Квантовое моделирование с компиляцией «точно в срок». Quantum . 6 : 814. arXiv : 2203.08826 . Bibcode : 2022Quant...6..814E. doi : 10.22331/q-2022-09-22-814 . S2CID  247518955.
  29. ^ "Qibolab". 2 ноября 2022 г. – через GitHub.
  30. ^ "Qibocal". 1 ноября 2022 г. – через GitHub.
  31. ^ "qiskit.org". qiskit.org .
  32. ^ "Обзор Qiskit" . Получено 10 февраля 2021 г. .
  33. ^ Маккей, Дэвид С.; Александр, Томас; Белло, Лучано; Бирчук, Майкл Дж.; Бишоп, Лев; Чен, Цзяинь; Чоу, Джерри М.; Корколес, Антонио Д.; Эггер, Даниэль; Филипп, Стефан; Гомес, Хуан; Хаш, Майкл; Джавади-Абхари, Али; Мореда, Диего; Нейшн, Пол; Пауловикс, Брент; Уинстон, Эрик; Вуд, Кристофер Дж.; Вуттон, Джеймс; Гамбетта, Джей М. (2018). «Спецификации бэкэнда Qiskit для экспериментов OpenQASM и OpenPulse». arXiv : 1809.03452 [quant-ph].
  34. ^ "Официальный сайт Qrisp".
  35. ^ "Eclipse Foundation (веб-сайт)".
  36. ^ "Фраунгофера ФОКУС (веб-сайт)" .
  37. ^ «Документация Azure Quantum, справочник по QDK и API Q# — Azure Quantum». learn.microsoft.com .
  38. ^ «Что такое Azure Quantum? - Azure Quantum». learn.microsoft.com . 11 января 2023 г.
  39. ^ "Strawberry Fields — Strawberry Fields 0.8.0 documentation". strawberryfields.readthedocs.io . Получено 25 сентября 2018 г. .
  40. ^ Киллоран, Натан; Айзаак, Джош; Кесада, Николас; Бергхольм, Вилле; Эми, Мэтью; Видбрук, Кристиан (2019). «Strawberry Fields: программная платформа для фотонных квантовых вычислений». Quantum . 3 : 129. arXiv : 1804.03159 . Bibcode :2019Quant...3..129K. doi :10.22331/q-2019-03-11-129. S2CID  54763305.
  41. ^ Видбрук, Кристиан; Пирандола, Стефано; Гарсия-Патрон, Рауль; Серф, Николас Дж.; Ральф, Тимоти К.; Шапиро, Джеффри Х.; Ллойд, Сет (1 мая 2012 г.). «Гауссова квантовая информация». Reviews of Modern Physics . 84 (2): 621–669. arXiv : 1110.3234 . Bibcode : 2012RvMP...84..621W. doi : 10.1103/RevModPhys.84.621. S2CID  119250535.
  42. ^ "Hardware — Strawberry Fields". strawberryfields.ai . Получено 26 марта 2021 г. .
  43. ^ «В гонке за сотни кубитов фотоны могут иметь «квантовое преимущество»». IEEE Spectrum: новости технологий, инженерии и науки . 5 марта 2021 г. Получено 26 марта 2021 г.
  44. ^ "pytket". GitHub . 22 января 2022 г.
  45. ^ Бернхард Омер. «Язык программирования QCL».
  46. ^ Хинек Млнаржик. «LanQ – квантовый императивный язык программирования».
  47. ^ Аб Лю, Шусен; Чжоу, ли; Гуань, Цзи; Он, Ян; Дуань, Руняо; Инь, Миншэн (9 мая 2017 г.). «Q|SI>: квантовый язык программирования». Scientia Sinica Informationis . 47 (10): 1300. arXiv : 1710.09500 . дои : 10.1360/N112017-00095. S2CID  9163705.
  48. ^ Da Rosa, Evandro Chagas Ribeiro; De Santiago, Rafael (31 января 2022 г.). «Ket Quantum Programming». ACM Journal on Emerging Technologies in Computing Systems . 18 (1): 1–25. doi :10.1145/3474224. ISSN  1550-4832.
  49. ^ "Ket Quantum Programming". quantumket.org . Получено 18 мая 2023 г. .
  50. ^ А. Балтаг и С. Сметс, «LQP: динамическая логика квантовой информации», Математические структуры в информатике 16(3):491-525, 2006.
  51. ^ Балтаг, Александру; Бергфельд, Джорт; Кишида, Кохей; Сак, Джошуа; Сметс, Соня; Чжун, Шэньян (2014). «PLQP & Company: Decidable Logics for Quantum Algorithms». Международный журнал теоретической физики . 53 (10): 3628–3647. Bibcode : 2014IJTP...53.3628B. doi : 10.1007/s10773-013-1987-3. S2CID  254573992.
  52. ^ "Программное обеспечение для языка Q". 23 ноября 2001 г. Архивировано из оригинала 20 июня 2009 г. Получено 20 июля 2017 г.
  53. ^ «Введение в Q# и Quantum Development Kit — Azure Quantum». learn.microsoft.com . 30 марта 2023 г.
  54. ^ "QCL - Язык программирования для квантовых компьютеров". tuwien.ac.at . Получено 20 июля 2017 г. .
  55. ^ Скотт Пакин, «Квантовый макроассемблер», Труды 20-й ежегодной конференции IEEE по высокопроизводительным экстремальным вычислениям 2016 г.
  56. ^ Ин, Миншэн (январь 2012 г.). «Логика Флойда–Хоара для квантовых программ». ACM Trans. Program. Lang. Syst . 33 (6): 19:1–19:49. doi : 10.1145/2049706.2049708 . ISSN  0164-0925. S2CID  416960.
  57. ^ Ин, Миншэн; Фэн, Юань (2010). «Язык блок-схем для квантового программирования». Труды IEEE по программной инженерии . 37 (4): 466–485. doi :10.1109/TSE.2010.94. ISSN  0098-5589. S2CID  5879273.
  58. ^ Инь, Миншэн; Ю, Нэнкун; Фэн, Юань; Дуань, Руняо (2013). «Верификация квантовых программ». Наука компьютерного программирования . 78 (9): 1679–1700. arXiv : 1106.4063 . doi : 10.1016/j.scico.2013.03.016. S2CID  18913620.
  59. ^ Ин, Миншэн; Ин, Шэнган; У, Сяоди (2017), «Инварианты квантовых программ: характеристики и генерация», ACM SIGPLAN Notices , 52 : 818–832, doi : 10.1145/3093333.3009840, hdl : 10453/127333
  60. ^ Лю, Тао; Ли, Янцзя; Ван, Шулин; Ин, Миншэн; Чжань, Найцзюнь (2016). «Доказательство теорем для квантовой логики Хоара и ее приложений». arXiv : 1601.03835 [cs.LO].
  61. ^ Джавади-Абхари, Али. «Scaffold: Quantum Programming Language». Принстонский университет — Факультет компьютерных наук . Принстонский университет . Получено 22 сентября 2020 г.
  62. ^ Литтекен, Эндрю (28 мая 2020 г.). «Обновленный компилятор квантовых исследований на основе LLVM с дальнейшей поддержкой OpenQASM». Квантовая наука и технологии . 5 (3): 034013. Bibcode : 2020QS&T....5c4013L. doi : 10.1088/2058-9565/ab8c2c . OSTI  1803951. S2CID  219101628.
  63. ^ "Что такое Silq?". silq.ethz.ch . Получено 21 июня 2020 г. .
  64. ^ Bichsel, Benjamin; Baader, Maximilian; Gehr, Timon; Vechev, Martin (11 июня 2020 г.). «Silq: высокоуровневый квантовый язык с безопасным невычислением и интуитивной семантикой». Труды 41-й конференции ACM SIGPLAN по проектированию и внедрению языков программирования . Лондон, Великобритания: ACM. стр. 286–300. doi :10.1145/3385412.3386007. ISBN 978-1-4503-7613-6. S2CID  219397029.
  65. ^ Питер Селинджер, «На пути к квантовому языку программирования», Математические структуры в информатике 14(4):527-586, 2004.
  66. ^ ab Джонатан Граттаж: QML Research (веб-сайт)
  67. ^ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, JK Vizzotto, QML: функциональный квантовый язык программирования. Архивировано 10 июля 2006 г. на Wayback Machine (веб-сайт).
  68. ^ Андре ван Тондер, «Лямбда-исчисление для квантовых вычислений», SIAM J. Comput., 33(5), 1109–1135. (27 страниц), 2004. Также доступно по адресу arXiv:quant-ph/0307150
  69. ^ Питер Селинджер и Бенуа Валирон, «Лямбда-исчисление для квантовых вычислений с классическим управлением», Математические структуры в информатике 16(3):527-552, 2006.
  70. ^ Пабло Арриги, Жиль Довек, «Линейно-алгебраическое лямбда-исчисление: высший порядок, кодировки и слияние», 2006
  71. ^ "The Language Integrated Quantum Operations Simulator". github.io . Получено 20 июля 2017 г. .
  72. ^ Группа квантовых архитектур и вычислений (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
  73. ^ "StationQ". microsoft.com . Получено 20 июля 2017 г. .
  74. ^ "Интегрированные в язык квантовые операции: LIQUi|>". Microsoft . 2016.
  75. ^ "QML: Функциональный квантовый язык программирования". 26 сентября 2007 г. Архивировано из оригинала 26 сентября 2007 г.
  76. Джонатан Граттаж, QML: функциональный квантовый язык программирования (компилятор) Архивировано 05.03.2016 в Wayback Machine , 2005–2008
  77. ^ Филип Меймин, «Расширение лямбда-исчисления для выражения рандомизированных и квантованных алгоритмов», 1996
  78. ^ Андре ван Тондер. "Лямбда-исчисление для квантовых вычислений (сайт)". Архивировано из оригинала 5 марта 2016 г. Получено 2 октября 2007 г.
  79. ^ Питер Селинджер, Бенуа Валирон, «Квантовое лямбда-исчисление»
  80. ^ «Язык Квиппер».
  81. ^ Александр С. Грин; Питер ЛеФану Ламсдейн; Нил Дж. Росс; Питер Селинджер; Бенуа Валирон. «Язык Quipper (веб-сайт)».
  82. ^ Александр С. Грин; Питер ЛеФану Ламсдейн; Нил Дж. Росс; Питер Селинджер; Бенуа Валирон (2013). «Введение в квантовое программирование на языке Quipper». Обратимые вычисления . Конспект лекций по информатике. Том 7948. С. 110–124. arXiv : 1304.5485 . doi :10.1007/978-3-642-38986-3_10. ISBN 978-3-642-38985-6. S2CID  9135905.

Дальнейшее чтение

Внешние ссылки