Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Q # (произносится как Q Sharp ) - это предметно-ориентированный язык программирования, используемый для выражения квантовых алгоритмов . [1] Первоначально он был выпущен для широкой публики Microsoft как часть Quantum Development Kit. [2]

История [ править ]

Во время Microsoft Ignite Keynote 26 сентября 2017 года Microsoft объявила, что собирается выпустить новый язык программирования, специально предназначенный для квантовых компьютеров. [3] 11 декабря 2017 года Microsoft выпустила Q # как часть Quantum Development Kit. [2]

На Build 2019 Microsoft объявила об открытии исходного кода Quantum Development Kit, включая его компиляторы и симуляторы Q #. [4]

Использование [ править ]

Q # доступен как отдельно загруженного расширения для Visual Studio , [5] , но он также может работать в качестве самостоятельного инструмента из командной строки и / или Visual Studio кодекса. Quantum Development Kit поставляется с квантовым симулятором, способным запускать Q #.

Для вызова квантового симулятора используется другой язык программирования .NET , обычно C # , который предоставляет (классические) входные данные для симулятора и считывает (классические) выходные данные симулятора.

Особенности [ править ]

Основная особенность Q # - это возможность создавать и использовать кубиты для алгоритмов. Как следствие, некоторые из наиболее характерных особенностей Q # являются способность Entangle и ввести superpositioning в кубитов через Controlled NOT ворот и Адамара ворот , соответственно, а также Toffoli Gates , Pauli X, Y, Z Gate , и многое другое которые используются для самых разных операций; см. список в статье о квантовых логических вентилях .

Ожидается, что аппаратный стек, который в конечном итоге появится вместе с Q #, будет реализовывать кубиты как топологические кубиты . Квантовый симулятор, который сегодня поставляется с Quantum Development Kit, способен обрабатывать до 32 кубитов на пользовательской машине и до 40 кубитов в Azure .

Документация и ресурсы [ править ]

В настоящее время ресурсов, доступных для Q #, мало, но опубликована официальная документация: Microsoft Developer Network: Q # . Репозиторий Microsoft Quantum Github также представляет собой большой набор примеров программ, реализующих различные алгоритмы Quantum и их тесты.

Microsoft также провела здесь конкурс квантового кодирования на Codeforces : Microsoft Q # Coding Contest - Codeforces , а также предоставила соответствующие материалы, чтобы помочь ответить на вопросы в сообщениях в блогах, а также подробные решения в руководствах.

Microsoft размещает на github набор обучающих упражнений, которые помогут изучить Q #: microsoft / QuantumKatas со ссылками на ресурсы и ответами на проблемы.

Синтаксис [ править ]

Q # синтаксически связан как с C #, так и с F #, но также имеет некоторые существенные различия.

Сходства с C # [ править ]

  • Использование namespaceдля изоляции кода
  • Все утверждения заканчиваются ;
  • Фигурные скобки используются для обозначения области действия
  • Однострочные комментарии выполняются с использованием //
  • Типы переменных данных, такие как Int Double Stringи Boolаналогичны, хотя и пишутся с заглавной буквы (а Int является 64-битным) [6]
  • Кубиты размещаются внутри usingблока.
  • Лямбда-функции с использованием =>оператора.
  • Результаты возвращаются с использованием returnключевого слова.

Сходства с F # [ править ]

  • Переменные объявляются с использованием либо letили mutable[1]
  • Функции первого порядка
  • Модули, которые импортируются с использованием openключевого слова
  • Тип данных объявляется после имени переменной.
  • Оператор диапазона ..
  • for … in петли
  • Каждая операция / функция имеет возвращаемое значение, а не void. Вместо этого возвращается voidпустой кортеж ().
  • Определение типов данных записи (с использованием newtypeключевого слова вместо type).

Различия [ править ]

  • Функции объявляются с использованием functionключевого слова
  • Операции на квантовом компьютере объявляются с помощью operationключевого слова
  • Отсутствие многострочных комментариев
  • Утверждает вместо исключения исключений
  • Документация написана на Markdown вместо тегов документации на основе XML.

Ссылки [ править ]

  1. ^ a b QuantumWriter. "Язык программирования Q #" . docs.microsoft.com . Проверено 11 декабря 2017 .
  2. ^ a b «Представляем Microsoft Quantum Development Kit» . Проверено 11 декабря 2017 .
  3. ^ «Microsoft объявляет о языке программирования квантовых вычислений» . Проверено 14 декабря 2017 .
  4. ^ Microsoft открывает исходный код своего Quantum Development Kit
  5. ^ QuantumWriter. «Настройка среды разработки Q #» . docs.microsoft.com . Проверено 14 декабря 2017 .
  6. ^ «Типы в Q # - Microsoft Quantum» . docs.microsoft.com .

Внешние ссылки [ править ]

  • Официальная документация
  • qsharp-language на GitHub