Quantum computing language
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/17 00:56 UTC 版)
「量子プログラミング言語」の記事における「Quantum computing language」の解説
QCL(英語版)(Quantum Computation Language)は最初に実装された量子プログラミング言語である。Quantum Computation Languageの構文はC言語の構文に似たものであり、Quantum computing languageの「classical data type」はC言語のプリミティブデータ型と似ていた。ひとつの同じプログラムのなかで古典的(量子プログラミング以前の)コードと量子プログラミングのコードを組み合わせることが可能である。 Quantum computing languageで用意された量子データ型はqureg (quantum register)と呼ばれるものである。これはキュービット(qubit, quantum bit, 量子ビット)の配列として解釈することができる。 qureg x1[2]; // 2-qubit quantum register x1 qureg x2[2]; // 2-qubit quantum register x2 H(x1); // Hadamard operation on x1 H(x2[1]); // Hadamard operation on the first qubit of the register x2 Quantum computing languageのインタプリタはqlib simulation libraryを採用しているため、量子プログラムの実行中に量子マシンの内部状態を観察することが可能である。 qcl> dump : STATE: 4 / 32 qubits allocated, 28 / 32 qubits free 0.35355 |0> + 0.35355 |1> + 0.35355 |2> + 0.35355 |3> + 0.35355 |8> + 0.35355 |9> + 0.35355 |10> + 0.35355 |11> dump operationはmeasurementとは異なることに注意。これはdump operationが量子マシンの状態に影響せず、simulatorを使うことによってのみ実現されるからである。 Quantum computing languageの標準ライブラリは量子アルゴリズムで用いられる量子オペレータを提供している。例えば次のようなものがある。 controlled-not with many target qubits, en:Hadamard operation on many qubits, parse and controlled phase. Quantum computing languageのもっとも重要な特徴はユーザー定義オペレータやユーザー定義関数をサポートしていることである。近代のプログラム言語と同様に、量子データを操作する新たなオペレーションを定義することができる。例えば次のようなものである。 operator diffuse (qureg q) { H(q); // Hadamard Transform Not(q); // Invert q CPhase(pi, q); // Rotate if q=1111.. !Not(q); // undo inversion !H(q); // undo Hadamard Transform } これはグローバーのアルゴリズムで用いられるmean operatorの逆を定義するものである。これによって、より抽象的な水準でアルゴリズムを定義することが可能になり、関数ライブラリをプログラマーが用いることができるように拡張することができる。
※この「Quantum computing language」の解説は、「量子プログラミング言語」の解説の一部です。
「Quantum computing language」を含む「量子プログラミング言語」の記事については、「量子プログラミング言語」の概要を参照ください。
- Quantum computing languageのページへのリンク