ИТ-компании продолжают выпускать чипы со все большим количеством кубитов в надежде прийти к полнофункциональному квантовому компьютеру. Однако работа с таким железом требует особого подхода, поэтому появляются специализированные языки квантового программирования. Сегодня мы в Beeline Cloud расскажем о нескольких таких проектах: Qrisp, Silq, Qutes, cQASM и Quantica — и зачем они нужны.

В поиске новых стандартов
В квантовых компьютерах видят большой потенциал. Принято считать, что устройство с несколькими миллионами кубитов сможет с высокой точностью моделировать сложные молекулярные взаимодействия в медицине, решать комбинаторные задачи вроде планирования маршрутов и оптимизации финансовых портфелей. Однако разработка полнофункционального железа в данной области занимает время и связана с рядом сложностей, поэтому ждать его полной готовности нецелесообразно. На сегодняшний день инженеры симулируют квантовые вычисления, совершенствуют существующие алгоритмы и развивают новые по большей части на классической инфраструктуре.
Но написание квантовых алгоритмов — сложный процесс сам по себе. До сих пор не существует устоявшихся абстракций для квантовых вычислений. Как отмечает Чарльз Юань, профессор из Массачусетского технологического института и специалист в данной области: «За прошедшие годы эксперты смогли разработать алгоритмы для решения отдельных комплексных задач, например, связанных с факторизацией целых чисел. Но до сих пор непонятно, как выстроить вокруг этого полноценную экосистему программного обеспечения».
Свой отпечаток на разработку квантовых алгоритмов накладывают особенности самих квантовых вычислителей. Одна из ключевых проблем — высокая вероятность ошибок, поскольку квантовые системы крайне чувствительны к внешним воздействиям. Кроме того, квантовые компьютеры принципиально отличаются от классических в логике выполнения программ. Чтобы упростить разработку алгоритмов, в таких условиях и развиваются языки квантового программирования. Они появляются едва ли не каждый месяц, поскольку их разработчики стремятся закрыть недостатки конкурирующих решений и при этом сохранить совместимость с классическими языками программирования — чтобы можно было писать программы привычным образом, а затем использовать вставки на квантовых языках.
При этом в попытке представить язык, который станет эталоном, авторы такого рода проектов передают свои наработки в open source. Некоторые проекты и вовсе развиваются фондами открытого программного обеспечения. Далее рассмотрим несколько таких ЯП, которые появились за последнее время.
Проект известного фонда
В 2023 году специалисты некоммерческой организации Eclipse Foundation, которая координирует работы по проектам Eclipse, представили высокоуровневый язык Qrisp. Разработчики проекта, представляющие целый спектр заинтересованных организаций, намереваются упростить разработку квантовых алгоритмов: «Писать квантовое программное обеспечение даже для систем, включающих сотню кубитов, затруднительно. Если же речь идет о более масштабной инфраструктуре, то задача многократно усложняется».
Qrisp является встроенным предметно-ориентированным языком (eDSL) и написан на Python. Ключевая абстракция этого ЯП — «квантовая переменная» (QuantumVariable), которая скрывает процесс управления кубитами от пользователя. Язык также имеет строгую типизацию через наследование классов и предлагает инфиксный арифметический синтаксис.
Qrisp уже находит применение в различных исследованиях.
В прошлом году специалисты из Берлинского технического университета, Рейн-Майнского университета прикладных наук и Института открытых систем связи им. Фраунгофера использовали язык при поиске оптимального криптографического метода для повышения безопасности облачных сервисов, предоставляющих удаленный доступ к квантовым вычислителям. А уже в марте этого года исследователи из Туринского политеха использовали Qrisp для оценки потенциала квантовых компьютеров в сфере анализа теплопроводности.
Для желающих поближе изучить возможности этого языка программирования хорошей отправной точкой может служить документация проекта. В ней разработчики знакомят с концепцией квантового программирования, показывают, как создавать переменные, и приводят примеры задач, которые можно решать с помощью Qrisp. В частности, авторы показали работу Qrisp на примере реализации алгоритма Шора или решения задачи коммивояжера. Инструмент распространяется по лицензии EPL 2.0.
Срезать лишнее
Еще один высокоуровневый язык квантового программирования — Silq. Его презентовали в 2020 году специалисты из Швейцарской высшей технической школы Цюриха и выложили в открытый доступ под лицензией BSL 1.0. Они обратили внимание, что в области квантового программирования разработчикам приходится тратить много времени и сил на работу с низкоуровневыми языками, а также сталкиваться с ограничениями, связанными с управлением кубитами и памятью. Язык Silq, как и Qrisp, предлагает систему типов, при этом он не позволяет реализовать операции, которые физически невозможно обработать на квантовом компьютере.
В техническом документе, презентующем этот ЯП, авторы показали, как с его помощью написать несколько квантовых алгоритмов для поиска минимального значения, обнаружения столкновений и создания равномерной суперпозиции (когда квантовая система с одинаковой вероятностью находится во всех возможных базовых состояниях). Еще возможности Silq сравнили с эталонными решениями на другом известном для квантовых алгоритмов ЯП — Q#. В качестве бенчмарка использовали задачи конкурсов по квантовому программированию от Microsoft. Как оказалось, Silq позволил решить все задачи эффективнее — потребовалось на 44% меньше строк кода. Примеры задач и программ можно изучить на сайте.

Почти как «Питон»
Qutes — это встраиваемый предметно-ориентированный язык, который разработали итальянские ученые из Катанийского университета в прошлом году (и выпустили под лицензией MIT). Он построен на основе открытого фреймворка Qiskit. В целом Qutes поддерживает простые структуры данных по типу массивов и пользовательских функций, позволяющих объединять классические вычислительные операции с квантовыми. Синтаксис языка и компилятор были реализованы на Python с использованием генератора нисходящих анализаторов ANTRL.
Свои наработки специалисты опубликовали в рецензируемом журнале The Computer Journal — одном из старейших в области компьютерных наук. В своей научной статье они представили дорожную карту развития проекта и описали потенциальные способы применения Qutes. Например, специалисты предлагают использовать этот ЯП в качестве учебного на курсах по квантовым вычислениям. Также есть вариант применять Qutes в сфере машинного обучения или прототипирования алгоритмов.
Опробовать Qutes можно в веб-песочнице на базе Google Colab — инструкции и примеры кода доступны в репозитории проекта.
Самый низкий уровень
В отличие от предыдущих инструментов в списке, cQASM представляет собой низкоуровневый язык программирования для описания квантовых алгоритмов. Первую его версию представили специалисты из нидерландского исследовательского центра QuTech и Intel еще в 2018 году. Но его актуальная — третья — версия была выложена на GitHub под лицензией Apache 2.0 в конце 2024 года. По словам авторов проекта, в области квантовых вычислений часто встречаются несовместимые языки и форматы. Цель cQASM — предложить единый стандарт, который бы позволял без проблем запускать написанные программы на любом квантовом железе.
Программа на cQASM состоит из списка инструкций, а точнее — из объявления версии, за которым следуют объявления переменных и сами команды. По сути, квантовый алгоритм представляет собой последовательность унитарных и неунитарных квантовых операций, применяемых к аргументам-кубитам. Разработчики подготовили несколько примеров, которые помогут познакомиться с синтаксисом языка. Среди них — реализация алгоритма Дойча — Йожи или механизм квантовой коррекции ошибок, показывающий, как закодировать один логический кубит с помощью трех физических. Больше подробностей можно найти в документации или расширенном руководстве пользователя. Там расписаны продвинутые функции и принципы работы компилятора.
Гибридный подход
Quantica — это написанный на Rust гибридный язык для квантовых вычислений, совмещающий классические подходы программирования и квантовые операции с гейтами и кубитами. Этот ЯП преобразует исходный код в высокооптимизированный машинный через LLVM. Quantica представил разработчик из индийской организации Quantica Foundation. Первая версия была выпущена им под лицензией MIT в конце 2025 года.
Автор проекта предлагает единую модель языка для выражения как классических, так и квантовых вычислений. Он утверждает, что решения по типу Silq или Q# хоть и различаются синтаксисом и уровнями абстракций, но работают по схожей схеме — обычная хост-программа создает квантовые схемы и управляет ими, а затем они выполняются на квантовом бэкенде. Однако в Quantica функции могут принимать как классические значения, так и кубитные.
Разработчик делал упор на доступность языка, так что синтаксис Quantica вдохновлен Python. Новый ЯП поддерживает JIT-компиляцию (в экспериментальном формате), а в будущем будет добавлена AOT-компиляция. Документация для Quantica представлена в PDF-документе, расположенном в репозитории на GitHub. В ней собраны инструкции по работе с языком на разных платформах, краткий гайд по написанию простых программ вроде калькулятора, а также описание синтаксиса.
Beeline Cloud — безопасный облачный провайдер. Разрабатываем облачные решения, чтобы вы предоставляли клиентам лучшие сервисы.
Другие наши материалы на Хабре и тематической площадке «вАЙТИ»:
Квантовое будущее, превосходство и это все — что происходит, и кто участвует в гонке
Национальные стандарты в области интернета вещей — в том числе для квантового распределения ключей
Low-latency инфраструктура: как устроены ЦОД и сети для минимизации задержек
Организация безопасного доступа к закрытым данным для ИИ: от заявок до федеративного обучения
Nonvexillum
Что ж, будущее завтра