Первый интуитивно понятный язык программирования для квантовых компьютеров.

Программировать квантовые компьютеры становится проще: ученые в Высшей технической школы Цюриха разработали первый язык, который можно использовать для программирования квантовых компьютеров так же просто, надежно и безопасно, как и классических компьютеров. «Программирование квантовых компьютеров до сих пор является сложной задачей для исследователей, — говорит Мартин Вечев, профессор информатики, — вот почему я так взволнован, ведь теперь мы можем продвинуться в исследованиях и разработке квантовых компьютеров и языков программирования».

Он добавляет: «Наш язык квантового программирования Silq позволяет программистам использовать потенциал квантовых компьютеров лучше, чем при использовании существующих языков. Этот код компактнее, быстрее, интуитивно понятен программистам». На этой неделе Вечев представил Silq другим специалистам в этой области на PLDI 2020, конференции по языкам программирования. Чтобы облегчить обсуждение, принятие и дальнейшее развитие, он и его команда также выставили Silq на своем собственном сайте (Silq.ethz.ch).

В последнее десятилетие квантовым вычислениям уделяется повышенное внимание, поскольку эти компьютеры, функционирующие на основе принципов квантовой физики, обладают огромным потенциалом. Сегодня большинство исследователей считают, что когда-нибудь эти компьютеры смогут решать определенные задачи быстрее, чем классические компьютеры. Связано это с тем, что для выполнения своих вычислений они используют запутанные квантовые состояния, в которых различные биты информации накладываются друг на друга в определенный момент времени. Это означает, что в будущем квантовые компьютеры смогут эффективно решать задачи, которые классические компьютеры не способны решить в разумные сроки.

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

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

Использование потенциала квантовых вычислений требует не только новейших технологий, но и языка квантового программирования для описания квантовых алгоритмов. В принципе, алгоритм — это «инструкция» для решения задачи; язык программирования описывает алгоритм так, чтобы компьютер мог выполнять необходимые вычисления.

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

«Silq — это первый язык квантового программирования, который базируется не на конструкции и функциональности аппаратного обеспечения, а на восприятии программистов. Когда они захотят решить проблему, от них не потребуется понимание каждой детали архитектуры и реализации компьютера», — говорит Бенджамин Биксель, докторант из группы Вечева, который руководит разработкой Silq.

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

Самое большое новшество и упрощение, которое Silq привносит в языки квантового программирования, касается источника ошибок, которые до сих пор терзали квантовое программирование. Компьютер вычисляет задачу в несколько промежуточных шагов, что создает промежуточные результаты или временные значения.

Чтобы освободить память, классические компьютеры автоматически стирают эти значения. Компьютерщики называют это «уборкой мусора», так как лишние временные значения утилизируются.

В случае квантовых компьютеров такая утилизация является более хитрой из-за квантовой запутанности: ранее рассчитанные значения могут взаимодействовать с текущими, мешая правильному вычислению. Соответственно, очистка таких временных значений на квантовых компьютерах требует более совершенной техники.

«Silq — это первый язык программирования, который автоматически определяет и стирает значения, которые больше не нужны», — объясняет Биксель. Добились этого, применяя свои знания классических языков программирования: их метод автоматического вычисления использует только команды программирования, свободные от каких-либо специальных квантовых операций — они «qfree», как говорят Вечев и Бихсель.

«Silq — это большой прорыв в области оптимизации программирования квантовых компьютеров; но не финальная фаза развития», — говорит Вечев. Остается еще много нерешенных вопросов, но поскольку Silq легче понять, Вечев и Бихсель надеются стимулировать как дальнейшее развитие языков квантового программирования, так и теорию и разработку новых квантовых алгоритмов.

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

Возможно, это открытие изменит наше с вами представление о программировании и компьютерах в целом, и поблагодарить за это мы можем ученых из Швейцарии. Если же вас интересует бизнес в этой замечательной стране, доменное имя в зоне .ch расположит к себе местную аудиторию и поможет привлечь больше посетителей.