Квантовое программирование
Языки квантового программирования — языки программирования, позволяющие выражать квантовые алгоритмы с использованием высокоуровневых конструкций. Их цель не столько создание инструмента для программистов, сколько предоставление средств для исследователей для облегчения понимания работы квантовых вычислений.
Существующие языки квантового программирования: QPL[1][2], QCL[3][4], Haskell-подобный QML[5], Quipper[6], Q#[7], Q[8], qGCL[8], cQPL[8], OpenQASM.
Библиотеки симуляции квантовых компьютеров (квантовые виртуальные машины, Quantum virtual machine): 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>
Примечания[править | править код]
- ↑ Peter Selinger. Mathematical Structures in Computer Science : [арх. 26 мая 2019]. — 2004 Cambridge University Press, 2004. — Т. 14, вып. 4. — С. 527—586.
- ↑ Peter Selinger. Towards a quantum programming language . Дата обращения: 16 марта 2019. Архивировано 30 апреля 2016 года.
- ↑ Bernhard Omer. The QCL Programming Language . Дата обращения: 16 марта 2019. Архивировано 8 октября 2003 года.
- ↑ QCL - A Programming Language for Quantum Computers . tuwien.ac.at. Дата обращения: 20 июля 2017. Архивировано 8 октября 2003 года.
- ↑ QML: A Functional Quantum Programming Language . Дата обращения: 26 сентября 2007. Архивировано из оригинала 26 сентября 2007 года.
- ↑ Quipper: a scalable quantum programming language Архивная копия от 15 января 2018 на Wayback Machine/PLDI '13 Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation Pages 333—342
- ↑ Архивированная копия . Дата обращения: 14 января 2018. Архивировано 14 января 2018 года.
- ↑ 1 2 3 Quantum Programming Language . Quantiki (6 декабря 2015). Дата обращения: 14 января 2018. Архивировано 22 июля 2018 года.
- ↑ IBM представила план по упрощению разработки ПО для квантовых вычислений (рус.). ServerNews.ru (8 февраля 2021). Дата обращения: 11 января 2022. Архивировано 22 января 2022 года.
Ссылки[править | править код]
- Quantum programming language. Архивная копия от 22 июля 2018 на Wayback Machine
- Quantum Programming Languages. Survey and Bibliography Архивная копия от 27 января 2018 на Wayback Machine Journal Mathematical Structures in Computer Science. Volume 16 Issue 4, August 2006. Pages 581—600 doi:10.1017/S0960129506005378.
- Towards a Quantum Programming Language Архивная копия от 10 августа 2017 на Wayback Machine / Math. Struct. in Comp. Science 14(4):527-586, 2004.
- Dominique Unruh. Quantum Programming Languages Архивная копия от 12 августа 2017 на Wayback Machine / Informatik — Forschung und Entwicklung 21(1):55-63, Springer, 2006.
- https://medium.com/@decodoku/how-to-program-a-quantum-computer-982a9329ed02 Архивная копия от 6 января 2018 на Wayback Machine
- https://www.americanscientist.org/node/3466
- Programming languages and compiler design for realistic quantum hardware Архивная копия от 8 февраля 2021 на Wayback Machine / Nature 549, 180—187 (14 September 2017) doi:10.1038/nature23459 (платн.)
Это заготовка статьи о компьютерных языках. Помогите Википедии, дополнив её. |