Quantum Computation Language: Difference between revisions

Content deleted Content added
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 3:
'''Quantum Computation Language''' ('''QCL''') is one of the first implemented [[quantum programming]] [[programming languages|languages]].<ref>{{cite web|url=http://tph.tuwien.ac.at/~oemer/qcl.html |title=QCL - A Programming Language for Quantum Computers |website=tuwien.ac.at |access-date=2017-07-20}}</ref> 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 type]]s are similar to primitive data types in C. One can combine classical code and quantum code in the same program.
 
The language was created before there were multi-qubit quantum computers and the only implementation of QCL uses an interpreter with a built-in classically simulated quantum computer.
The language was created to explore programming concepts for quantum computers.<ref>{{cite thesis|last=Ömer |first=Bernhard |date=2000-01-20 |title=Quantum Programming in QCL|publisher=Institute for Theoretical Physics, Vienna University of Technology|url=http://tph.tuwien.ac.at/~oemer/doc/quprog.pdf |access-date=2021-05-24}}</ref><ref>{{cite journal|last=Ömer|first=Bernhard|title=Classical Concepts in Quantum Programming|journal=International Journal of Theoretical Physics|date=29 Apr 2003|volume=44|issue=7|pages=943–955|doi=10.1007/s10773-005-7071-x|arxiv=quant-ph/0211100|s2cid=119373370}}</ref><ref>{{cite web|title=Structured Quantum Programming|last=Ömer|first=Bernhard|url=http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf|date=2 September 2009|publisher=Institute for Theoretical Physics, Vienna University of Technology}}</ref>
 
The languageQCL was created to explore programming concepts for quantum computers.<ref>{{cite thesis|last=Ömer |first=Bernhard |date=2000-01-20 |title=Quantum Programming in QCL|publisher=Institute for Theoretical Physics, Vienna University of Technology|url=http://tph.tuwien.ac.at/~oemer/doc/quprog.pdf |access-date=2021-05-24}}</ref><ref>{{cite journal|last=Ömer|first=Bernhard|title=Classical Concepts in Quantum Programming|journal=International Journal of Theoretical Physics|date=29 Apr 2003|volume=44|issue=7|pages=943–955|doi=10.1007/s10773-005-7071-x|arxiv=quant-ph/0211100|s2cid=119373370}}</ref><ref>{{cite web|title=Structured Quantum Programming|last=Ömer|first=Bernhard|url=http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf|date=2 September 2009|publisher=Institute for Theoretical Physics, Vienna University of Technology}}</ref>
The QCL standard library provides standard quantum operators used in quantum algorithms such as:<ref>[http://tph.tuwien.ac.at/~oemer/qcl.html QCL web page]</ref>
 
The QCL standard library provides standard quantum operators used in quantum algorithms such as:<ref>[http://tph.tuwien.ac.at/~oemer/qcl.html QCL web page]</ref>
 
* Controlled-not with many target qubits,
Line 18 ⟶ 20:
**Classical - int, real, complex, boolean, string, vector, matrix, tensor
*Function types
**qufunct - Pseudo-classic operators. Can only change the permutation of basicbasis states.
**operator - General unitary operators. Can change the amplitude.
**procedure - Can call measure, print, and dump inside this function. This function is non-invertible.
Line 60 ⟶ 62:
}
</syntaxhighlight>
defines inverse about the mean operator used in [[Grover's algorithm]] (it is sometimes called the ''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 ==