量子プログラミングとは、ゲート、スイッチ、演算子を使用して量子回路と呼ばれる一連の命令を設計または組み立て、量子システムを操作して特定の実験で望ましい結果や成果を得るプロセスです。量子回路アルゴリズムは、集積回路に実装したり、計測器を使用して実行したり、量子コンピューターや量子プロセッサーで使用するためのプログラミング言語で記述したりできます。
量子プロセッサベースのシステムでは、量子プログラミング言語が高レベル構造を使用して量子アルゴリズムを表現するのに役立ちます。 [1]この分野はオープンソースの哲学に深く根ざしており、その結果、この記事で説明する量子ソフトウェアのほとんどはオープンソースソフトウェアとして無料で利用できます。[2]
線形光量子コンピューティング(LOQC)モデルであるKLM プロトコルに基づく量子コンピュータは、電子機器、集積回路、計測機器、センサー、その他の物理的手段によって実装された量子アルゴリズム (回路) を使用します。[本文では検証されていません]
量子システムに関連する実験用に設計された他の回路は、計測器とセンサーをベースにしたものになります。[本文では検証されていません]
量子命令セット
量子命令セットは、より高レベルのアルゴリズムを量子プロセッサで実行できる物理命令に変換するために使用されます。これらの命令は、イオントラップや超伝導量子ビットなど、特定のハードウェア プラットフォームに固有のものである場合があります。
ブラックバード
Blackbird [3] [4]は、 Xanadu Quantum TechnologiesとStrawberry Fieldsが使用する量子命令セットと中間表現です。光子量子ハードウェア上で実行できる 連続変数量子プログラムを表現するように設計されています。
翻訳
cQASM [5]は、 common QASMとも呼ばれ、ハードウェアに依存しない量子アセンブリ言語であり、すべての量子コンパイルおよびシミュレーションツール間の相互運用性を保証します。これは、TUDelftのQCAラボによって導入されました。
オープンQASM
OpenQASM [6]は、IBMがQiskitおよびIBM Q Experienceで使用するために導入した中間表現です。
キル
Quilは量子コンピューティング用の命令セットアーキテクチャであり、初めて共有量子/古典メモリモデルを導入しました。これは、ロバート・スミス、マイケル・カーティス、ウィリアム・ゼンによって「実用的な量子命令セットアーキテクチャ」で導入されました。[7]多くの量子アルゴリズム(量子テレポーテーション、量子エラー訂正、シミュレーション、[8] [9]および最適化アルゴリズム[10] を含む)は共有メモリアーキテクチャを必要とします。
量子ソフトウェア開発キット
量子ソフトウェア開発キットは、量子プログラムを作成および操作するためのツールのコレクションを提供します。[11]また、量子プログラムをシミュレートしたり、クラウドベースの量子デバイスや自己ホスト型量子デバイスを使用して実行できるように準備したりする手段も提供します。
量子プロセッサにアクセスできるSDK
以下のソフトウェア開発キットは、プロトタイプの量子デバイスやシミュレータ上で量子回路を実行するために使用できます。
サーク
Googleが開発したオープンソースプロジェクト。Pythonプログラミング言語を使用して量子回路を作成および操作します。Cirqで書かれたプログラムは、 IonQ、Pasqal、[12] Rigetti、Alpine Quantum Technologiesで実行できます。 [13]
クラシック
Classiq が開発したクラウドベースの量子 IDE は、高レベルの量子言語である Qmod を使用して、ハードウェア対応の合成エンジンを備えたスケーラブルで効率的な量子回路を生成します。この回路は、幅広い QPU に展開できます。このプラットフォームには、大規模な量子アルゴリズムのライブラリが含まれています。
森
Rigettiが開発したオープンソースプロジェクトで、Pythonプログラミング言語を使用して量子回路を作成および操作します。結果は、Rigettiが提供するシミュレータまたはプロトタイプの量子デバイスを使用して取得されます。基本的な量子操作を使用してプログラムを作成する機能に加えて、より高レベルのアルゴリズムがGroveパッケージ内で利用できます。[14] ForestはQuil命令セットに基づいています。
マインドクォンタム
MindQuantumはMindSporeをベースにした量子コンピューティングフレームワークであり、 NISQアルゴリズムの実装に重点を置いています。[15] [16] [17]
海
D-Wave が開発したオープンソースのツールスイート。主に Python プログラミング言語で記述されており、ユーザーは Ising モデルと 2 次制約なしバイナリ最適化形式 (QUBO) で問題を定式化できます。結果は、Leap のオンライン量子コンピューター、D-Wave のリアルタイム量子アプリケーション環境、顧客所有のマシン、または従来のサンプラーに送信することで取得できます。[引用が必要]

ペニーレーン
Xanadu Quantum Technologiesが量子コンピュータの微分可能プログラミング用に開発したオープンソース のPythonライブラリ。 [18] [19] [20] [21] PennyLaneは、TensorFlow、NumPy、PyTorchを使用してモデルを作成し、 IBMQ、Google Quantum、Rigetti、Quantinuum [22] 、Alpine Quantum Technologiesから入手可能な量子コンピュータバックエンドに接続する機能をユーザーに提供します。[13] [23]
パーシヴァル
が作成したオープンソースプロジェクト。Pythonをベースにした光量子回路の設計と量子アルゴリズムの開発を目的としている。シミュレーションはユーザー自身のコンピュータ上またはクラウド上で実行される。Perceval は Quandela のクラウドベースの光量子プロセッサに接続するためにも使用される。[24] [25]
プロジェクトQ
ETH理論物理学研究所で開発されたオープンソースプロジェクトで、Pythonプログラミング言語を使用して量子回路を作成および操作します。[26]結果はシミュレータを使用するか、IBM量子デバイスにジョブを送信することによって得られます。
キボ
QRC、CQT、INFNを含む複数の研究機関によって開発された、量子シミュレーション、量子ハードウェア制御、キャリブレーション用のオープンソースのフルスタックAPI。Qiboは、量子シミュレーションとハードウェア制御用の複数のバックエンドを含むモジュラーフレームワークです。[27] [28]このプロジェクトの目的は、複数の機器用のドライバー[29]と量子キャリブレーション、特性評価、検証用のツールを備えた、プラットフォームに依存しない量子ハードウェア制御フレームワークを提供することです。[30]このフレームワークは、研究室で必要なソフトウェア開発を簡素化することで、自己ホスト型量子デバイスに焦点を当てています。
キスキット
IBMが開発したオープンソースプロジェクト。[31]量子回路はPythonを使用して作成および操作されます。結果は、ユーザー自身のデバイスで実行されるシミュレータ、IBMが提供するシミュレータ、またはIBMが提供するプロトタイプの量子デバイスのいずれかを使用して取得されます。基本的な量子操作を使用してプログラムを作成する機能に加えて、アルゴリズムとベンチマーク用のより高度なツールが専用パッケージ内で利用できます。[32] Qiskitは、量子回路を表現するためのOpenQASM標準に基づいています。また、QiskitPulse標準を介して量子システムのパルスレベルの制御もサポートしています。[33]
クリスプ
Qrisp [34]は、 Eclipse Foundation [35]がコーディネートし、 Fraunhofer FOKUS [36]がPython プログラミングで開発したオープンソース プロジェクトです。Qrisp は、量子アルゴリズムを作成およびコンパイルするための高水準プログラミング言語です。構造化プログラミング モデルにより、スケーラブルな開発と保守が可能になります。表現力豊かな構文は、量子ビットではなく変数に基づいており、コア クラスとして QuantumVariable を使用し、ゲートではなく関数を使用しています。高性能シミュレータや自動アンコンピュテーションなどの追加ツールが、この広範なフレームワークを補完します。さらに、デバイス固有のゲート セットに基づいて、回路レベルまでの基本関数の代替コンパイルを提供するため、プラットフォームに依存しません。
量子開発キット
マイクロソフト[37]が.NET Frameworkの一部として開発したプロジェクト。量子プログラムは、量子プログラミング言語Q#を使用してVisual StudioとVSCode内で作成および実行できます。QDKで開発されたプログラムは、マイクロソフトのAzure Quantum [38]で実行でき、 Quantinuum [22] 、IonQ、Pasqal [12]の量子コンピュータでも実行できます。
ストロベリーフィールド
Xanadu Quantum Technologiesが開発したオープンソースの Python ライブラリ。連続可変(CV)量子光回路の設計、シミュレーション、最適化に使用します。 [39] [40] 3つのシミュレータが提供されています。1つはFock基底、1つは量子光学のガウス定式化を使用するシミュレータ、[41] 1つはTensorFlow機械学習ライブラリを使用するシミュレータです。Strawberry Fieldsは、Xanaduの量子光ハードウェア上でプログラムを実行するためのライブラリでもあります。[42] [43]
t|ケット>
ケンブリッジ・クオンタム・コンピューティング社が開発した量子プログラミング環境と最適化コンパイラー。シミュレーターといくつかの量子ハードウェアバックエンドを対象としており、2018年12月にリリースされました。[44]
量子プログラミング言語
量子プログラミング言語には、命令型量子プログラミング言語と関数型量子プログラミング言語 という 2 つの主要なグループがあります。
命令型言語
命令型言語の最も代表的なものとしてはQCL [45] 、 LanQ [46]、Q|SI> [47]があげられる。
ケット
Ket [48]は、 Pythonの使い慣れた構文とシンプルさを活用して量子プログラミングを容易にするために設計されたオープンソースの組み込み言語です。Ket Quantum Programming Platform [49]の不可欠なコンポーネントとして機能し、Rustランタイムライブラリと量子シミュレータとシームレスに統合されます。Quantuloopによって管理されているこのプロジェクトは、研究者と開発者にとってのアクセシビリティと汎用性を重視しています。次の例は、Ketを使用したベル状態の実装を示しています。
ket インポート から*
a , b = quant ( 2 ) # 2つの量子ビットを割り当てる
H ( a ) # 量子ビット「a」を重ね合わせる
cnot ( a , b ) # 2つの量子ビットをベル状態でエンタングルする
m_a = measure ( a ) # 量子ビット `a` を測定し、量子ビット `b` も収縮させる
m_b = measure ( b ) # 量子ビット `b` を測定する
# 両方の量子ビットの測定値は常に等しいと断言する
m_a . value == m_b . valueをアサートする
ルクペ
量子プログラム論理(LQP)は、量子測定の重要な特徴と多部構成状態のユニタリー進化を表現できる動的量子論理であり、さまざまな形態のエンタングルメントの論理的特徴付けを提供する。この論理は、量子計算におけるさまざまなプロトコルの正しさを指定および検証するために使用されている。[50] [51]
Q言語
Q言語は2番目に実装された命令型量子プログラミング言語です。[52] Q言語はC++プログラミング言語の拡張として実装されました。QHadamard、QFourier、QNot、QSwapなどの基本的な量子演算のクラスを提供し、これらは基本クラスQopから派生しています。新しい演算子はC++クラスメカニズムを使用して定義できます。
量子メモリはクラス Qreg によって表されます。
Qreg x1 ; // 初期値 0 の 1 量子ビット量子レジスタQreg x2 ( 2 , 0 ); // 初期値 0 の 2 量子ビット量子レジスタ
計算プロセスは、提供されたシミュレータを使用して実行されます。シミュレータのパラメータを使用して、ノイズの多い環境をシミュレートできます。
Q#
マイクロソフトがQuantum Development Kitで使用するために開発した言語。 [53]
クォリティクライシス
量子計算言語(QCL)は、最初に実装された量子プログラミング言語の1つです。[54] QCLの最も重要な機能は、ユーザー定義の演算子と関数のサポートです。その構文はCプログラミング言語の構文に似ており、その古典的なデータ型はCのプリミティブデータ型に似ています。同じプログラムで古典的なコードと量子コードを組み合わせることができます。
qGCL
量子ガードコマンド言語 (qGCL) は、P. Zuliani が博士論文で定義しました。これは、Edsger Dijkstraが作成したガードコマンド言語に基づいています。
これは量子プログラム仕様の言語として説明できます。
QMASM
量子マクロアセンブラ(QMASM)は、D-Waveなどの量子アニーリング装置に特化した低レベル言語である。[55]
Qmod
量子モデリング (Qmod) 言語は、ゲートレベルの量子ビット操作を抽象化する高水準言語であり、量子レジスタ上の量子アルゴリズムの実装に機能的なアプローチを提供します。この言語は Classiq プラットフォームの一部であり、ネイティブ構文で直接使用することも、Python SDK を介して使用することも、ビジュアル エディターを使用して使用することもできます。すべての方法で、アルゴリズムの大規模なライブラリと効率的な回路最適化を活用できます。
Q|SI>
Q|SI>は、while言語の量子拡張における量子プログラミングをサポートする.Net言語に組み込まれたプラットフォームです。 [47] [56]このプラットフォームには、量子while言語のコンパイラ[57]と、量子計算のシミュレーション、量子回路の最適化、量子プログラムの終了分析[58]、量子プログラムの検証のための一連のツールが含まれています。[59] [60]
量子擬似コード
E. ニルが提案した量子擬似コードは、量子アルゴリズムを記述するための最初の形式化された言語です。量子擬似コードは、量子ランダム アクセス マシン(QRAM)と呼ばれる量子マシンのモデルと密接に連携して導入されました。
足場
ScaffoldはC言語に似た言語で、 QASMとOpenQASMにコンパイルされます。LLVMコンパイラインフラストラクチャ上に構築されており、指定された命令セットを生成する前にScaffoldコードの最適化を実行します。[61] [62]
シルク
Silqは、ETHチューリッヒで開発された、強力な静的型システムを備えた量子コンピューティング用の高水準プログラミング言語です。[63] [64]
関数型言語
量子コンピューティング用の関数型プログラミング言語の開発が進められています。関数型プログラミング言語は、プログラムについての推論に適しています。例としては、SelingerのQPL [65]や、AltenkirchとGrattageによるHaskell風言語QML[66]などがあります。 [67]ラムダ計算に基づく高階量子プログラミング言語は、 van Tonder [68] 、 SelingerとValiron [69]、ArrighiとDowek [70]によって提案されています。
LIQUi|>
LIQUi|>(リキッドと発音)は、 F#プログラミング言語の量子シミュレーション拡張機能です。 [71]現在、Microsoft ResearchのStationQプロジェクトの一環として、量子アーキテクチャおよび計算グループ(QuArC)[72]によって開発されています。LIQUi|>は、物理的な量子コンピュータが使用可能になる前に、理論家が量子アルゴリズムの設計を実験できるようにすることを目指しています。[73]
これにはプログラミング言語、最適化およびスケジューリングアルゴリズム、量子シミュレータが含まれています。LIQUi|>は、高レベルプログラムの形式で記述された量子アルゴリズムを量子デバイス用の低レベルマシン命令に変換するために使用できます。[74]
QFCとQPL
QFC と QPL は、ピーター・セリンジャーによって定義された 2 つの密接に関連した量子プログラミング言語です。これらの言語は構文のみが異なります。QFC はフローチャート構文を使用し、QPL はテキスト構文を使用します。これらの言語は古典的な制御フローを持ちますが、量子データまたは古典データに対して操作できます。セリンジャーは、スーパー演算子のカテゴリでこれらの言語の表示的意味論を提供します。
翻訳言語
QMLは、アルテンキルヒとグラッテッジによるHaskellのような量子プログラミング言語である。 [75] [66]セリンジャーのQPLとは異なり、この言語は量子情報の破棄ではなく複製を基本操作としてとらえる。この文脈における複製はにマッピングされる操作であると理解されており、不可能なクローン作成操作と混同しないようにする必要がある。著者らは、これは古典言語で共有がモデル化される方法に似ていると主張している。QMLは古典的制御演算子と量子的制御演算子の両方を導入するが、他のほとんどの言語は古典的制御に依存している。
QMLの操作的意味論は量子回路の観点から与えられ、一方、表示的意味論は超演算子の観点から提示され、これらは一致することが示されている。操作的意味論と表示的意味論の両方が(古典的に)Haskellに実装されている。[76]
量子ラムダ計算
量子ラムダ計算は、1930 年代にアロンゾ・チャーチとスティーブン・コール・クリーネによって導入された古典的なラムダ計算の拡張です。量子ラムダ計算の目的は、高階関数の理論を使用して量子プログラミング言語を拡張することです。
量子ラムダ計算を定義する最初の試みは、1996年にフィリップ・メイミンによって行われました。[77] 彼のラムダq計算は、あらゆる量子計算を表現できるほど強力です。しかし、この言語はNP完全問題を効率的に解くことができるため、標準的な量子計算モデル(量子チューリングマシンや量子回路モデルなど)よりも厳密に強力であるように見えます。したがって、メイミンのラムダq計算は、おそらく物理デバイス上に実装できません[要出典]。
2003年、アンドレ・ファン・トンダーは量子プログラムの正しさを証明するのに適したラムダ計算の拡張を定義し、 Schemeプログラミング言語での実装も提供した。[78]
2004年にセリンジャーとヴァリロンは線形論理に基づく型システムを持つ量子計算のための強く型付けされたラムダ計算を定義しました。[79]
クイッパー
Quipperは2013年に公開されました。[80] [81]これはHaskellをホスト言語として用いた組み込み言語として実装されています。 [82]このため、Quipperで書かれた量子プログラムは、提供されたライブラリを使用してHaskellで書かれています。たとえば、次のコードは重ね合わせの準備
Quipperをインポートする
spos :: Bool -> Circ Qubit spos b = do q <- qinit b r <- hadamard q return r
参考文献
- ^ Jarosław Adam Miszczak (2012)。量子コンピューティングにおける高レベル構造。Morgan & Claypool Publishers。ISBN 9781608458516。
- ^ 「量子オープンソースプロジェクトの包括的なリスト」。Github 。2022年1月27日閲覧。
- ^ 「Blackbird Quantum Assembly Language — Blackbird 0.2.0 ドキュメント」。quantum-blackbird.readthedocs.io 。2019 年6 月 24 日閲覧。
- ^ Weedbrook, Christian; Amy, Matthew; Bergholm, Ville; Quesada, Nicolás; Izaac, Josh; Killoran, Nathan (2019 年 3 月 11 日). 「Strawberry Fields: フォトニック量子コンピューティング向けソフトウェア プラットフォーム」. Quantum . 3 : 129. arXiv : 1804.03159 . Bibcode :2019Quant...3..129K. doi :10.22331/q-2019-03-11-129. S2CID 54763305.
- ^ Bertels, K.; Almudever, CG; Hogaboam, JW; Ashraf, I.; Guerreschi, GG; Khammassi, N. (2018 年 5 月 24 日)。「cQASM v1.0: 共通 量子アセンブリ言語に向けて」。arXiv : 1805.09607v1 [quant-ph]。
- ^ qiskit-openqasm: OpenQASM 仕様、International Business Machines、2017 年 7 月 4 日、 2017 年7 月 6 日取得
- ^ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). 「実用的な量子命令セットアーキテクチャ」. arXiv : 1608.03355 [quant-ph].
- ^ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán (2016 年 2 月 4 日). 「変分ハイブリッド量子古典アルゴリズムの理論」. New Journal of Physics . 18 (2): 023023. arXiv : 1509.04279 . Bibcode :2016NJPh...18b3023M. doi :10.1088/1367-2630/18/2/023023. ISSN 1367-2630. S2CID 92988541.
- ^ Rubin, Nicholas C.; Curtis, Michael J.; Zeng, William J. (2016). 「密度行列埋め込み理論による量子システムの大規模研究のためのハイブリッド古典/量子アプローチ」arXiv : 1610.06910 [quant-ph].
- ^ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). 「量子近似最適化アルゴリズム」. arXiv : 1411.4028 [quant-ph].
- ^ Häner, Thomas; Steiger, Damian S.; Svore, Krysta ; Troyer, Matthias (2018). 「量子プログラムをコンパイルするためのソフトウェア手法」.量子科学技術. 3 (2): 020501. arXiv : 1604.01401 . Bibcode :2018QS&T....3b0501H. doi :10.1088/2058-9565/aaa5cc. ISSN 2058-9565. S2CID 1922315.
- ^ ab "PASQAL". PASQAL .
- ^ ab 「ホーム」。AQT | ALPINE QUANTUM TECHNOLOGIES。
- ^ 「Grove のドキュメントへようこそ! — Grove 1.7.0 ドキュメント」。grove -docs.readthedocs.io。
- ^ 「MindSpore Quantum ドキュメント」www.mindspore.cn/mindquantum。
- ^ Xu, Xusheng; et al. (2024). 「MindSpore Quantum: ユーザーフレンドリーで高性能、AI 互換の量子コンピューティングフレームワーク」. arXiv : 2406.17248 [quant-ph].
- ^ 「mindquantum」. github.com .
- ^ 「PennyLane ドキュメント — PennyLane 0.14.1 ドキュメント」。pennylane.readthedocs.io 。2021年3 月 26 日閲覧。
- ^ 「AWS、機械学習と量子コンピューティングを融合するオープンソースフレームワークPennyLaneに参加」SiliconANGLE 2021年2月17日2021年3月26日閲覧。
- ^ 「SD Times Open-Source Project of the Week: PennyLane」. SD Times . 2021年2月26日. 2021年3月26日閲覧。
- ^ Salamone, Salvatore (2020年12月13日). 「12月12日までの週のリアルタイム分析ニュースまとめ」. RTInsights . 2021年3月26日閲覧。
- ^ ab 「量子コンピューティングの加速」www.quantinuum.com。
- ^ 「プラグインとエコシステム — PennyLane」。pennylane.ai 。 2021年3月26日閲覧。
- ^ "La puissance d'un orderur quantique testée en ligne (オンラインでテストされる量子コンピューターの能力)".ルモンド.fr。ルモンド。 2022 年 11 月 22 日。
- ^ ニコラ・ハーテル;フィリラス、アンドレアス。ド・グリニアスティ、グレゴワール。ル・ビアン、ラファエル。マルエルブ、セバスチャン。パイハス、マルソー。ベルタシ、エリック。ブルドンクル、ボリス。エメリオー、ピエール=エマニュエル。メザー、ラワド。音楽、ルカ。ベラバス、ナディア。ヴァリロン、ブノワ。セネルラート、パスカル。シェーン・マンスフィールド。ジャン・セネラート(2023年2月21日)。 「Perceval: 離散変数フォトニック量子コンピューティングのためのソフトウェア プラットフォーム」。量子。7 : 931.arXiv : 2204.00602。Bibcode :2023Quant...7..931H。土井:10.22331/q-2023-02-21-931。S2CID 247922568。
- ^ 「ホーム」。
- ^ エフティミウ、スタブロス;ラモス・カルデラー、セルジ。ブラボー・プリエト、カルロス。ペレス・サリナス、アドリアン。ガルシア=マルティン、ディエゴ。ガルシア=サエズ、アルトゥール。ラトーレ、ホセ・イグナシオ。カラッツァ、ステファノ(2022年1月1日)。 「Qibo: ハードウェア アクセラレーションを備えた量子シミュレーション用フレームワーク」。量子科学技術。7 (1): 015018.arXiv : 2009.01845。Bibcode :2022QS&T....7a5018E。土井:10.1088/2058-9565/ac39f5。hdl :2434/887963。ISSN 2058-9565。S2CID 221507478。
- ^ Efthymiou, Stavros; Lazzarin, Marco; Pasquale, Andrea; Carrazza, Stefano (2022年9月22日). 「ジャストインタイムコンパイルによる量子シミュレーション」. Quantum . 6 :814. arXiv : 2203.08826 . Bibcode :2022Quant...6..814E. doi : 10.22331/q-2022-09-22-814 . S2CID247518955 .
- ^ 「Qibolab」。2022年11月2日 – GitHub経由。
- ^ 「Qibocal」。2022年11月1日 – GitHub経由。
- ^ "qiskit.org". qiskit.org .
- ^ 「Qiskitの概要」。2021年2月10日閲覧。
- ^ McKay, David C.; Alexander, Thomas; Bello, Luciano; Biercuk, Michael J.; Bishop, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gomez, Juan; Hush, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nation, Paul; Paulovicks, Brent; Winston, Erick; Wood, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). 「OpenQASM および OpenPulse 実験用の Qiskit バックエンド仕様」。arXiv : 1809.03452 [ quant-ph]。
- ^ 「Qrisp公式サイト」.
- ^ 「Eclipse Foundation (ウェブサイト)」.
- ^ “フラウンホーファー FOKUS (ウェブサイト)”.
- ^ 「Azure Quantum ドキュメント、QDK および Q# API リファレンス - Azure Quantum」。learn.microsoft.com。
- ^ 「Azure Quantum とは? - Azure Quantum」。learn.microsoft.com。2023年 1 月 11 日。
- ^ 「Strawberry Fields — Strawberry Fields 0.8.0 ドキュメント」。strawberryfields.readthedocs.io 。2018年9月25日閲覧。
- ^ Killoran, Nathan; Izaac, Josh; Quesada, Nicolás; Bergholm, Ville; Amy, Matthew; Weedbrook, Christian (2019). 「Strawberry Fields: フォトニック量子コンピューティング向けソフトウェアプラットフォーム」. Quantum . 3 : 129. arXiv : 1804.03159 . Bibcode :2019Quant...3..129K. doi :10.22331/q-2019-03-11-129. S2CID 54763305.
- ^ Weedbrook, Christian; Pirandola, Stefano; García-Patrón, Raúl; Cerf, Nicolas J.; Ralph, Timothy C.; Shapiro, Jeffrey H.; Lloyd, Seth (2012 年 5 月 1 日). 「ガウス量子情報」. Reviews of Modern Physics . 84 (2): 621–669. arXiv : 1110.3234 . Bibcode :2012RvMP...84..621W. doi :10.1103/RevModPhys.84.621. S2CID 119250535.
- ^ 「ハードウェア — ストロベリーフィールズ」。strawberryfields.ai . 2021年3月26日閲覧。
- ^ 「数百量子ビットへの競争において、光子は「量子的優位性」を持つ可能性がある」IEEE Spectrum: テクノロジー、エンジニアリング、および科学ニュース。2021年3月5日。 2021年3月26日閲覧。
- ^ “pytket”. GitHub . 2022年1月22日.
- ^ Bernhard Omer. 「QCL プログラミング言語」.
- ^ ハイネック・ムルナジーク。 「LanQ – 量子命令型プログラミング言語」。
- ^ ab 劉、秀仙;周、李。グアン、ジー。彼、ヤン。ドゥアン、ルンヤオ。イン・ミンシェン(2017年5月9日)。 「Q|SI>: 量子プログラミング言語」。中国科学情報です。47 (10): 1300.arXiv : 1710.09500。土井:10.1360/N112017-00095。S2CID 9163705。
- ^ Da Rosa, Evandro Chagas Ribeiro; De Santiago, Rafael (2022年1月31日). 「Ket Quantum Programming」. ACM Journal on Emerging Technologies in Computing Systems . 18 (1): 1–25. doi :10.1145/3474224. ISSN 1550-4832.
- ^ 「Ket Quantum Programming」. quantumket.org . 2023年5月18日閲覧。
- ^ A. BaltagとS. Smets、「LQP:量子情報の動的ロジック」、コンピュータサイエンスにおける数学的構造16(3):491-525、2006年。
- ^ Baltag, Alexandru; Bergfeld, Jort; Kishida, Kohei; Sack, Joshua; Smets, Sonja; Zhong, Shengyang (2014). 「PLQP & Company: 量子アルゴリズムのための決定可能ロジック」. International Journal of Theoretical Physics . 53 (10): 3628–3647. Bibcode :2014IJTP...53.3628B. doi :10.1007/s10773-013-1987-3. S2CID 254573992.
- ^ 「Q言語用ソフトウェア」。2001年11月23日。2009年6月20日時点のオリジナルよりアーカイブ。2017年7月20日閲覧。
- ^ 「Q# と Quantum 開発キットの概要 - Azure Quantum」。learn.microsoft.com。2023年 3 月 30 日。
- ^ 「QCL - 量子コンピュータ向けプログラミング言語」tuwien.ac.at . 2017年7月20日閲覧。
- ^ スコット・パキン、「量子マクロアセンブラ」、第 20 回 IEEE ハイパフォーマンスエクストリームコンピューティングカンファレンス 2016 の議事録
- ^ Ying, Mingsheng (2012年1月). 「量子プログラムのためのフロイド・ホア論理」. ACM Trans. Program. Lang. Syst . 33 (6): 19:1–19:49. doi : 10.1145/2049706.2049708 . ISSN 0164-0925. S2CID 416960.
- ^ Ying, Mingsheng; Feng, Yuan (2010). 「量子プログラミングのためのフローチャート言語」. IEEE Transactions on Software Engineering . 37 (4): 466–485. doi :10.1109/TSE.2010.94. ISSN 0098-5589. S2CID 5879273.
- ^ 英、明生;ユウ、ネンクン。フェン、ユアン。ドゥアン、ルンヤオ (2013)。 「量子プログラムの検証」。コンピュータプログラミングの科学。78 (9): 1679 ~ 1700 年。arXiv : 1106.4063。土井:10.1016/j.scico.2013.03.016。S2CID 18913620。
- ^ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017)、「量子プログラムの不変量:特徴付けと生成」、ACM SIGPLAN Notices、52:818–832、doi:10.1145/3093333.3009840、hdl:10453/127333
- ^ Liu, Tao; Li, Yangjia; Wang, Shuling; Ying, Mingsheng; Zhan, Naijun (2016). 「量子ホア論理の定理証明器とその応用」. arXiv : 1601.03835 [cs.LO].
- ^ Javadi-Abhari, Ali. 「Scaffold: 量子プログラミング言語」。プリンストン大学コンピューターサイエンス学部。プリンストン大学。 2020年9月22日閲覧。
- ^ Litteken, Andrew (2020年5月28日). 「OpenQASMをさらにサポートする、更新されたLLVMベースの量子研究コンパイラ」.量子科学技術. 5 (3): 034013. Bibcode :2020QS&T....5c4013L. doi : 10.1088/2058-9565/ab8c2c . OSTI 1803951. S2CID 219101628.
- ^ 「Silq とは何か?」silq.ethz.ch . 2020 年6 月 21 日閲覧。
- ^ Bichsel, Benjamin; Baader, Maximilian; Gehr, Timon; Vechev, Martin (2020年6月11日)。「Silq: 安全な非計算と直感的なセマンティクスを備えた高水準量子言語」。第41回ACM SIGPLANプログラミング言語設計および実装会議の議事録。ロンドン英国: ACM。pp. 286–300。doi : 10.1145 / 3385412.3386007。ISBN 978-1-4503-7613-6. S2CID 219397029。
- ^ Peter Selinger、「量子プログラミング言語に向けて」、コンピュータサイエンスにおける数学的構造14(4):527-586、2004年。
- ^ Jonathan Grattage: QML Research (ウェブサイト)
- ^ T. Altenkirch、V. Belavkin、J. Grattage、A. Green、A. Sabry、JK Vizzotto、「QML: 関数型量子プログラミング言語」Wayback Machineに 2006-07-10 にアーカイブ(ウェブサイト)
- ^ Andre van Tonder、「量子計算のためのラムダ計算」、SIAM J. Comput.、33(5)、1109–1135。(27ページ)、2004年。arXivからも入手可能:quant-ph/0307150
- ^ Peter SelingerとBenoît Valiron、「古典的制御による量子計算のためのラムダ計算」、Mathematical Structures in Computer Science 16(3):527-552、2006年。
- ^ Pablo Arrighi、Gilles Dowek、「線形代数ラムダ計算:高階、符号化、合流」、2006 年
- ^ 「言語統合型量子演算シミュレータ」. github.io . 2017年7月20日閲覧。
- ^ 量子アーキテクチャおよび計算グループ (QuArC)、https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/、2011
- ^ 「StationQ」. microsoft.com . 2017年7月20日閲覧。
- ^ 「言語統合型量子演算: LIQUi」。Microsoft . 2016 年。
- ^ 「QML: 関数型量子プログラミング言語」。2007年9月26日。2007年9月26日時点のオリジナルよりアーカイブ。
- ^ Jonathan Grattage、QML: 関数型量子プログラミング言語 (コンパイラ) 2016-03-05 にWayback Machineでアーカイブ、2005–2008
- ^ フィリップ・メイミン、「ランダム化および量子化アルゴリズムを表現するためのラムダ計算の拡張」、1996年
- ^ André van Tonder. 「量子計算のためのラムダ計算(ウェブサイト)」。2016年3月5日時点のオリジナルよりアーカイブ。2007年10月2日閲覧。
- ^ Peter Selinger、Benoˆıt Valiron、「量子ラムダ計算」
- ^ 「Quipper言語」。
- ^ Alexander S. Green、Peter LeFanu Lumsdaine、Neil J. Ross、Peter Selinger、Benoît Valiron。「The Quipper Language (ウェブサイト)」。
- ^ Alexander S. Green、Peter LeFanu Lumsdaine、Neil J. Ross、Peter Selinger、Benoît Valiron (2013)。「Quipper での量子プログラミング入門」。可逆計算。コンピュータサイエンスの講義ノート。第 7948 巻。pp. 110–124。arXiv : 1304.5485。doi : 10.1007 / 978-3-642-38986-3_10。ISBN 978-3-642-38985-6. S2CID 9135905。
さらに読む
- ミンシェン、イン(2024)。量子プログラミングの基礎(第2版)。マサチューセッツ州ケンブリッジ:モーガン・カウフマン。ISBN 978-0-4431-5942-8. OCLC 1406095194. 978-0-4431-5943-5 (電子書籍).
- セラーノ、マヌエル A.ペレス・カスティージョ、リカルド。ピアッティーニ、マリオ編。 (2022年)。量子ソフトウェア工学(第 1 版)。スイス、チャム:シュプリンガー。土井:10.1007/978-3-031-05324-5。ISBN 978-3-031-05323-8. OCLC 1347696597. 978-3-031-05326-9 (ソフトカバー) & 978-3-031-05324-5 (電子書籍).
外部リンク
- すべての量子オープンソースソフトウェアプロジェクトの厳選リスト
- 量子プログラミング言語に関する参考文献(2007 年 5 月更新)
- 量子物理学と論理 (QPL) カンファレンス シリーズ (L は 2006 年まで「言語」の略でした)
- Quantiki の量子プログラミング言語
- QMASMドキュメント
- pyQuil ドキュメント(量子コンピューティング入門を含む)は、2018 年 7 月 18 日にWayback Machineにアーカイブされました。
- 足場ソース
