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

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

Существующие языки квантового программирования: QPL[1][2], QCL[3][4], Haskell-подобный QML[5], Quipper[6], Q#[7], Q[8], qGCL[8], cQPL[8].

Библиотеки симуляции квантовых компьютеров (квантовые виртуальные машины, Quantum virtual machine): en:libquantum, qlib.

Упрощение разработки ПО для квантовых вычислений

Корпорация IBM выпустила набор инструментов для разработчиков под названием Qiskit. И в следующем году IBM обещает предложить инструменты, которые упростят программистам создание программного обеспечения, включающего в себя как квантовые вычисления, так и традиционные вычислительные элементы в одной программе. Затем, начиная с 2023 года, IBM планирует предложить своим клиентам библиотеки предварительно созданных квантовых алгоритмов, которые программисты смогут использовать через простой облачный API-интерфейс. Это позволит разрабатывать программное обеспечение для квантового компьютера на языках программирования, которые уже известны разработчикам, без необходимости изучать новый язык. IBM заявила, что хочет, чтобы программисты, работающие в корпорациях, могли «самостоятельно исследовать модели квантовых вычислений, не задумываясь о квантовой физике». И к 2025 году, по словам IBM, она сможет предложить инструмены для квантовых вычислений, при использовании которых программистам больше не нужно будет думать о том, на каком именно квантовом компьютере (потому что одни используют сверхпроводники, другие — фотоны, а третьи построены на ловушках для ионов) будет работать код или даже какая часть программы будет выполняться на квантовой системе, а не на традиционном сервере[9].

Пример кода на QCL

QCL, Quantum computing language — одна из первых реализаций языка квантового программирования. Близок к языку Си и классическим типам данных. Позволяет смешивать классический и квантовый код в одном исходном файле.

Базовый квантовый тип данных qureg (квантовый регистр, quantum register). Его можно представить в виде массива кубитов (квантовых битов).

  qureg x1[2]; // двухкубитовый квантовый регистр x1
  qureg x2[2]; // двухкубитовый квантовый регистр x2
  H(x1); // Операция Адамара над x1
  H(x2[1]); // Операция Адамара над первым кубитом регистра x2

Поскольку интерпретатор qcl использует библиотеку симуляции qlib, возможно наблюдать внутреннее состояние квантового компьютера во время исполнения:

  qcl> dump
  : STATE: 4 / 32 qubits allocated, 28 / 32 qubits free
  0.35355 |0> + 0.35355 |1> + 0.35355 |2> + 0.35355 |3>
  + 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11>

Примечания

  1. Peter Selinger. Mathematical Structures in Computer Science. — 2004 Cambridge University Press, 2004. — Т. 14, вып. 4. — С. 527—586.
  2. Peter Selinger. Towards a quantum programming language.
  3. Bernhard Omer. The QCL Programming Language.
  4. QCL - A Programming Language for Quantum Computers. tuwien.ac.at. Дата обращения: 20 июля 2017.
  5. QML: A Functional Quantum Programming Language. Дата обращения: 26 сентября 2007.
  6. Quipper: a scalable quantum programming language/PLDI '13 Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation Pages 333—342
  7. https://www.theregister.co.uk/2017/09/25/microsoft_talks_quantum_computing_and_ai/
  8. Quantum Programming Language. Quantiki (6 декабря 2015).
  9. IBM представила план по упрощению разработки ПО для квантовых вычислений (рус.) ?. ServerNews.ru (8 февраля 2021). Дата обращения: 11 января 2022.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.