Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Унру Д. — Квантовые языки программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
25.49 Кб
Скачать

Уважаемый читатель!

Все переводные материалы, представленные в каталоге «Переводы», выложены в свободный доступ для свободного использования в образовательных и научных целях. Я, как переводчик, рад, что мои труды не пропадают даром и используются хорошими людьми. Однако я был бы ещё больше рад, если бы хорошие люди благодарили меня за мой непростой труд. Благодарность можно выразить при помощи переводов (как говорится, «перевод за перевод») на следующие счета в различных платёжных системах:

  • Яндекс.Деньги: 4100137733052.

  • WebMoney: R211895623295.

  • PayPal: darkus.14@gmail.com.

Ваша благодарность поможет мне и дальше заниматься переводами и выкладывать их в свободный доступ.

Квантовые языки программирования

Унру Д. (unruh@cs.uni-sb.de) Университет Саарланда, Германия

Аннотация. Мы изучили текущее состояние вопроса в области разработки квантовых языков программирования. Различается два типа таких языков: направленные на практические применения (такие как симуляция или программирование настоящих квантовых компьютеров), и направленные на теоретический анализ квантовых программ. Мы даём обзор существующих работ над двумя типами и описываем открытые вызовы, которые ещё предстоит разрешить.

1. Мотивация

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

  • Теоретическое исследование квантовых алгоритмов. В настоящее время квантовые алгоритмы большей частью описываются либо на какого-то роде полуформальном псевдокоде (см. [Kni96]), либо при помощи записи алгоритма в виде квантовой схемы (см. [Cle00] для введения в тему). Однако псевдокод страдает от отсутствия точности формально-определённого языка программирования, а схемная модель обладает малой степенью выразительности. Сравнивая с классическими (то есть не-квантовыми) алгоритмами, мы отмечаем, что эти алгоритмы очень редко описываются при помощи схем, и что структурированный программный код чаще всего наиболее подходит для представления и анализа. Поэтому процессы проектирования и анализа квантовых алгоритмов могут получить выгоду от использования языков программирования с ясной семантикой и высокоуровневыми понятиями, позволяющими абстрагироваться от конкретной модели аппаратного обеспечения (как в случае квантовых схем) и концентрироваться на главной идее алгоритма.

  • Экспериментальное исследование квантовых алгоритмов. В некоторых случаях невозможно формально доказать корректность и эффективность заданного алгоритма. Он может быть основан на недоказанных математических предположениях или эвристических методах. В этом случае требуется тестирование алгоритма. Даже в условиях отсутствия квантового компьютера его симуляция может дать руководящее осмысление возможностей и проблем алгоритма (по крайней мере для небольших размеров входных данных). И такие поиски хороших алгоритмов при помощи метода проб и ошибок затем приносят выгоду в части получения простых и мощных методов запуска и исполнения алгоритмов.

  • Спецификация и верификация квантовых криптографических протоколов. В области квантовой криптографии к настоящему времени разработано множество протоколов, некоторые из которых даже были реализованы. Однако для того чтобы доказать секретность квантового протокола, совершенно необходимо формально определить этот протокол. Большинство подходов используют либо неформальное описание, либо квантовые схемы. Оба подхода имеют проблемы в части описания параллельного исполнения процессов на разных сторонах взаимодействия. Далее, если исследовать большие квантовые протоколы (которые могут появиться при совмещении нескольких простых протоколов для получения одного большого; см. [BOM04, Unr04c]), описание при помощи квантовых схем становится громоздким. Поэтому процессы проектирования и формального анализа квантовых протоколов только выиграют от наличия более сложного формализма для описания одновременного взаимодействия нескольких субъектов.

На основе приведённых требований возникают два совершенно различных подхода к проектированию квантовых языков программирования: для доказательства корректности алгоритмов и протоколов требуются языки с точно определённой формальной семантикой; в то время как экспериментирование и эвристическое построение алгоритмов и, когда будут построены настоящие квантовые компьютеры, реализация алгоритмов потребуют мощные и простые в использовании языки, для которых будет достаточной интуитивно понятная спецификация вместо формально определённой семантики. Для краткости мы будем называть эти подходы «формальные языки программирования» и «практические языки программирования» соответственно.