Loading article…
量子計算言語(QCL)は、最初に実装された量子プログラミング 言語の1つです。[1] QCLの最も重要な機能は、ユーザー定義の演算子と関数のサポートです。その構文はCプログラミング言語の構文に似ており、その古典的なデータ型はCのプリミティブデータ型に似ています。同じプログラム内で古典的なコードと量子コードを組み合わせることができます。
この言語は量子コンピュータのプログラミング概念を探求するために作成されました。[2] [3] [4]
QCLライブラリは、次のような量子アルゴリズムで使用される標準的な量子演算子を提供します。[5]
- 制御されたターゲット量子ビットが多数あるわけではない、
- 多数の量子ビットに対するアダマール演算、
- 位相と制御位相。
- 2進定数(すべてnを法とする)による加算、乗算、累乗の量子アルゴリズム
- 量子フーリエ変換
構文
- データ型
- 量子 - qureg、quvoid、quconst、quscratch、qucond
- 古典的 - int、実数、複素数、ブール値、文字列、ベクトル、行列、テンソル
- 関数の種類
- qufunct - 擬似古典演算子。基底状態の順列のみを変更できます。
- 演算子 - 一般的なユニタリ演算子。振幅を変更できます。
- 手順 - この関数内で measure、print、dump を呼び出すことができます。この関数は逆関数ではありません。
- 組み込み関数
- 量子
- qufunct - ファンアウト、スワップ、Perm2、Perm4、Perm8、Not、CNot
- 演算子 - Matrix2x2、Matrix4x4、Matrix8x8、Rot、Mix、H、CPhase、SqrtNot、X、Y、Z、S、T
- 手順 - 測定、ダンプ、リセット
- クラシック
- 算術 - sin、cos、tan、log、sqrt、...
- 複合語 - Re、Im、conj
- 量子
例
QCL の基本的な組み込み量子データ型は qureg (量子レジスタ) です。これは、量子ビット (量子ビット) の配列として解釈できます。
qureg x1 [ 2 ]; // 2量子ビット量子レジスタ x1 qureg x2 [ 2 ]; // 2量子ビット量子レジスタ x2 H ( x1 ); // x1 に対するアダマール演算H ( x2 [ 1 ]); // レジスタ x2 の最初の量子ビットに対するアダマール演算
qcl インタープリタは qlib シミュレーション ライブラリを使用するため、量子プログラムの実行中に量子マシンの内部状態を観察することができます。
qcl> ダンプ
: 状態: 4 / 32 量子ビットが割り当てられ、28 / 32 量子ビットが空いています
0.35355 |0> + 0.35355 |1> + 0.35355 |2> + 0.35355 |3>
+ 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11>
ダンプ操作は量子マシンの状態に影響を与えず、シミュレータを使用してのみ実現できるため、測定とは異なることに注意してください。
現代のプログラミング言語と同様に、量子データを操作するために使用できる新しい操作を定義することが可能です。例:
operator diffusion ( qureg q ) { H ( q ); // アダマール変換Not ( q ); // q を反転CPhase ( pi , q ); // q=1111 の場合は回転します。! Not ( q ); // 反転を元に戻す! H ( q ); // アダマール変換を元に戻す}
グローバーのアルゴリズムで使用される平均演算子の逆を定義します(グローバーの拡散演算子と呼ばれることもあります)。これにより、より高い抽象レベルでアルゴリズムを定義し、プログラマが使用できる関数のライブラリを拡張できます。
参考文献
- ^ 「QCL - 量子コンピュータ向けプログラミング言語」tuwien.ac.at . 2017年7月20日閲覧。
- ^ Ömer, Bernhard (2000-01-20). QCLにおける量子プログラミング(PDF) (論文). ウィーン工科大学理論物理学研究所. 2021-05-24閲覧。
- ^ Ömer, Bernhard (2003年4月29日). 「量子プログラミングにおける古典的概念」. International Journal of Theoretical Physics . 44 (7): 943–955. arXiv : quant-ph/0211100 . doi :10.1007/s10773-005-7071-x. S2CID 119373370.
- ^ Ömer, Bernhard (2009 年 9 月 2 日). 「構造化量子プログラミング」(PDF)。ウィーン工科大学理論物理学研究所。
- ^ QCLウェブページ
