目次

このページについて

このページではQuantum Development Kit(以下QDK)プレビュー版で提供されたものについて解説します。このページの内容は次のドキュメント(英語)のMicrosoft Quantum Development Kit Componentsを参考に構成しています。
Welcome to the Microsoft Quantum Development Kit Preview | Microsoft Docs

Q# プレビュー版の構成

QDKプレビュー版には次の機能が含まれています。

  1. Q# と Q# コンパイラー
  2. Q# 標準ライブラリ
  3. ‎ローカル量子マシンシミュレーター(Local quantum machine simulator)
  4. ‎量子コンピューターのトレースシミュレーター(Quantum computer trace simulator)
  5. ‎Visual Studio 拡張機能

機能の詳細

この項では機能の詳細について記述します。ただし、Local quantum machine simulatorとQuantum computer trace simulatorについては筆者がよくわかっていないので、理解次第更新します。それまではほぼ原文の直訳です。

1. Q# と Q# コンパイラー

 QDKとともに公開されたプログラミング言語Q#と、そのコンパイラーです。
 Q# は量子アルゴリズムの表現に特化したドメイン固有言語(domain-specific language, DSL)です。従来の古典的なコンピューターの補助装置として機能する量子コンピューター上で動作するプログラムを書くために用いられます。

※Q#並びにQDKでは、量子コンピューターをメインマシンとして用いるのではなく、GPUのように補助的な演算装置として用いることを想定しています。

2. Q#標準ライブラリ

 Q# 標準ライブラリでは、従来のプログラミング言語で求められていたような操作と関数に加えて、Q#の量子アルゴリズムのための操作と関数を提供しています。

※ちなみに、物理学の世界では量子物理Quantum Physicsに対してそれ以外の物理学のことを古典物理Classical Physicsと呼ぶのですが、これになぞらえたのかドキュメントの原文では従来のプログラミング言語のことを古典言語Classcial Languageと呼称しています。これ自体は面白いのですが、古典言語だと言語学やら何やらと混ざりそうなのでここでは従来のプログラミング言語と書きました。

3. ローカル量子マシンシミュレーター(Local quantum machine simulator)

 正確なベクトルシミュレーションと処理速度向上のために最適化された完全な状態ベクトルシミュレーターです。

 ※ 原文の機能欄にはfull state vector simulator と書かれているのですが、このfullの意味がよくわからなかったので「完全な状態ベクトルのシミュレーター」と記述しています。分かり次第修正予定です。

4. 量子コンピューターのトレースシミュレーター(Quantum computer trace simulator)

 Local quantum machine simulatorのように量子環境を再現するのではなく、量子プログラムの実行に必要なリソースの見積もりと、Q#に由来しない制御コードの高速なデバッグのためのシミュレーターです。

5. Visual Studio 拡張機能

 Visual Studio でQ# のプロジェクトやソースファイルを生成するためのテンプレートの導入や、Q#コードのシンタックスハイライトができるようにする拡張機能です。コンパイラへのフックも生成します。