Ученые из Высшей технической школы Цюриха (ETH Zurich) разработали язык программирования, который можно использовать для квантовых компьютеров так же легко, надежно и безошибочно, как классические.
Разработкой языка занималась команда под руководством профессора Мартина Вечева из Лаборатории интеллектуальных систем (SRI). 18 июня Мартин представил Silq на конференции по программированию PLDI 2020.
Язык для программистов
Существующие квантовые языки заставляют программиста работать на низком уровне абстракции, что приводит к неинтуитивному и загроможденному коду. Удаление временных значений из состояния программы требует явного применения квантовых операций, которые безопасно вычисляют эти значения.
Silq – квантовый язык, который решает эту проблему, поддерживая безопасное автоматическое вычисление. Интуитивная семантика неявно отбрасывает временные значения, как в классических вычислениях. Система типов использует новые аннотации для отклонения нефизических программ, чтобы обеспечить физичность семантики Silq, говорят разработчики из ETH Zurich
Программы на Silq легче читать и писать. Они значительно короче, чем аналогичные программы на других квантовых языках (в среднем -46% для Q #, -38% для Quipper). При этом Silq использует только половину числа квантовых примитивов.
Пример кода на Silq
Автоматическая очистка неиспользуемых значений
Silq – первый квантовый язык программирования, который автоматически распознает и избавляется от временных значений, которые больше не требуются.
Каждый компьютер вычисляет задачу в несколько промежуточных этапов. Это создает временные значения. Чтобы освободить оперативную память, эти значения удаляются с классических компьютеров.
С квантовыми компьютерами все сложнее из-за квантовой запутанности. Предыдущие расчетные значения могут взаимодействовать с текущими и мешать правильному вычислению. Очистка на таких компьютерах требует продвинутой техники, которая называется «uncomputation». Автоматическое удаление мусора или метод выполнения «uncomputation» в Silq использует только те команды, которые не содержат квантовых операций – «qfree».
Перспективы
Silq исследовательский проект, который пока не выполняется ни на одной из существующих платформ квантового оборудования. Исследователи написали собственный квантовый эмулятор для проведения испытаний.
Так как Silq язык высокого уровня, компиляция состоит из двух этапов:
- разработчик выражает свое высокоуровневое намерение;
- компилятор решает, на какой архитектуре будет работать, и как под нее оптимизировать код.
«Это не последний этап разработки», – говорит Мартин Вечев. Есть еще много нерешенных вопросов. Делая «Silq» более понятным, разработчики надеются стимулировать дальнейшее развитие языков квантового программирования и разработку новых квантовых алгоритмов. Исследователи заинтересованы в сотрудничестве с сообществом программистов с целью развития и популяризации проекта.