- Source: Quantum Computation Language
Quantum Computation Language (QCL) is one of the first implemented quantum programming languages. The most important feature of QCL is the support for user-defined operators and functions. Its syntax resembles the syntax of the C programming language and its classical data types are similar to primitive data types in C. One can combine classical code and quantum code in the same program.
The language was created to explore programming concepts for quantum computers.
The QCL library provides standard quantum operators used in quantum algorithms such as:
Controlled-not with many target qubits,
Hadamard operation on many qubits,
Phase and controlled phase.
Quantum algorithms for addition, multiplication and exponentiation with binary constants (all modulus n)
The quantum fourier transform
Syntax
Data types
Quantum - qureg, quvoid, quconst, quscratch, qucond
Classical - int, real, complex, boolean, string, vector, matrix, tensor
Function types
qufunct - Pseudo-classic operators. Can only change the permutation of basis states.
operator - General unitary operators. Can change the amplitude.
procedure - Can call measure, print, and dump inside this function. This function is non-invertible.
Built-in functions
Quantum
qufunct - Fanout, Swap, Perm2, Perm4, Perm8, Not, CNot
operator - Matrix2x2, Matrix4x4, Matrix8x8, Rot, Mix, H, CPhase, SqrtNot, X, Y, Z, S, T
procedure - measure, dump, reset
Classical
Arithmetic - sin, cos, tan, log, sqrt, ...
Complex - Re, Im, conj
Examples
The basic built-in quantum data type in QCL is the qureg (quantum register). It can be interpreted as an array of qubits (quantum bits).
Since the qcl interpreter uses qlib simulation library, it is possible to observe the internal state of the quantum machine during execution of the quantum program.
Note that the dump operation is different from measurement, since it does not influence the state of the quantum machine and can be realized only using a simulator.
Like in modern programming languages, it is possible to define new operations which can be used to manipulate quantum data. For example:
defines inverse about the mean operator used in Grover's algorithm (it is sometimes called Grover's diffusion operator). This allows one to define algorithms on a higher level of abstraction and extend the library of functions available for programmers.
References
Kata Kunci Pencarian:
- Kucing Schrödinger
- Mesin finite-state
- Algoritma
- Pi
- Garis waktu peristiwa jauh di masa depan
- Daftar masalah matematika yang belum terpecahkan
- Quantum Computation Language
- Quantum programming
- Quantum computing
- List of programming languages
- Quantum circuit
- Quantum algorithm
- Theoretical computer science
- IBM Quantum Platform
- Quantum information science
- Quantum logic gate