Q Sharp - Q Sharp
Эта статья может чрезмерно полагаться на источники слишком тесно связан с предметом, потенциально препятствуя публикации статьи проверяемый и нейтральный.Сентябрь 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Парадигма | мультипарадигма: квант, функциональный, императив |
---|---|
Разработано | 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 теги документации
Рекомендации
- ^ а б QuantumWriter. "Язык программирования Q #". docs.microsoft.com. Получено 2017-12-11.
- ^ а б «Представляем Microsoft Quantum Development Kit». Получено 2017-12-11.
- ^ «Microsoft анонсирует язык программирования для квантовых вычислений». Получено 2017-12-14.
- ^ QuantumWriter. «Настройка среды разработки Q #». docs.microsoft.com. Получено 2017-12-14.
- ^ «Типы в Q # - Microsoft Quantum». docs.microsoft.com.