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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Пример кода на 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. Quipper: a scalable quantum programming language/PLDI '13 Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation Pages 333-342
  2. https://www.theregister.co.uk/2017/09/25/microsoft_talks_quantum_computing_and_ai/
  3. 1 2 3 Quantum Programming Language. Quantiki (6 декабря 2015).

Ссылки[править | править код]