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.