Q Sharp - Q Sharp

Q #
Парадигмамультипарадигма: квант, функциональный, императив
РазработаноMicrosoft Research (группа квантовых архитектур и вычислений; QuArC)
РазработчикMicrosoft
Впервые появился11 декабря 2017
Печатная дисциплинастатический, сильный
ПлатформаИнфраструктура общего языка
ЛицензияЛицензия MIT
Расширения имени файла.qs
Интернет сайтMicrosoft Quantum (GitHub )
Под влиянием
C #, F #

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

История

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

использование

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

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

Функции

Основная особенность Q # - это возможность создавать и использовать кубиты для алгоритмов. Как следствие, некоторые из наиболее заметных особенностей Q # - это способность запутывать и представить суперпозиция в кубиты через Управляемые ворота НЕ и Ворота Адамара соответственно, а также Тоффоли Гейтс, Паули X, Y, Z ворота, и многие другие, которые используются для различных операций; см. список в статье о квантовые логические ворота.

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

Документация и ресурсы

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

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

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

Синтаксис

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

Сходства с C #

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

Сходства с F #

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

Отличия

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

Рекомендации

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

внешняя ссылка