Kvantový výpočetní jazyk - Quantum Computation Language
![]() | tento článek potřebuje další citace pro ověření.Březen 2018) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Kvantový výpočetní jazyk (QCL) je jedním z prvních implementovaných kvantové programování jazyky.[1] Nejdůležitější vlastností QCL je podpora pro uživatelem definované operátory a funkce. Své syntax připomíná syntaxi souboru Programovací jazyk C. a jeho klasika typy dat jsou podobné primitivním datovým typům v C. Lze kombinovat klasický kód a kvantový kód ve stejném programu.
Standardní knihovna QCL poskytuje standardní kvantové operátory používané v kvantových algoritmech, jako jsou:
- Řízeno ne s mnoha cílovými qubits,
- Hadamardova operace na mnoha qubits,
- Fáze a řízená fáze.
- Kvantové algoritmy pro sčítání, násobení a umocňování (všechny moduly n)
- The kvantová Fourierova transformace
Syntax
- Typy dat
- Kvantum - qureg, quvoid, quconst, quscratch, qucond
- Klasické - int, reálné, komplexní, booleovské, řetězcové, vektorové, maticové, tenzorové
- Typy funkcí
- qufunct - Pseudoklasické operátory. Lze změnit pouze permutaci základních stavů.
- operátor - Obecní unitární operátoři. Může změnit amplitudu.
- postup - Může volat měření, tisk a výpis uvnitř této funkce. Tato funkce je nezměnitelná.
- Integrované funkce
- Kvantové
- qufunct - Fanout, Swap, Perm2, Perm4, Perm8, Not, CNot
- operátor - Matrix2x2, Matrix4x4, Matrix8x8, Rot, Mix, H, CPhase, SqrtNot, X, Y, Z, S, T
- postup - měření, výpis, reset
- Klasický
- Aritmetika - sin, cos, tan, log, sqrt, ...
- Komplexní - Re, Im, konj
- Kvantové
Příklady
Základní vestavěný kvantový datový typ v QCL je qureg (kvantový registr). Lze jej interpretovat jako řadu qubitů (kvantových bitů).
qureg x1[2]; // 2bitový kvantový registr x1qureg x2[2]; // 2bitový kvantový registr x2H(x1); // Hadamardova operace na x1H(x2[1]); // Hadamardova operace na prvním qubitu registru x2
Protože interpret qcl používá simulační knihovnu qlib, je možné během provádění kvantového programu pozorovat vnitřní stav kvantového stroje.
qcl> výpis: STAV: 4/32 qubits přiděleno, 28/32 qubits zdarma 0,35355 | 0> + 0,35355 | 1> + 0,35355 | 2> + 0,35355 | 3> + 0,35355 | 8> + 0,35355 | 9> + 0,35355 | 10> + 0,35355 | 11>
Všimněte si, že operace výpisu se liší od měření, protože neovlivňuje stav kvantového stroje a lze ji realizovat pouze pomocí simulátoru.
Stejně jako v moderních programovacích jazycích je možné definovat nové operace, které lze použít k manipulaci s kvantovými daty. Například:
operátor šířit (qureg q) { H(q); // Hadamardova transformace Ne(q); // Invertovat q CPhase(pi, q); // Otočit, pokud q = 1111 .. !Ne(q); // vrátit zpět inverzi !H(q); // vrátit zpět Hadamardovu transformaci}
definuje inverzní k průměrnému operátoru použitému v Groverův algoritmus. To umožňuje definovat algoritmy na vyšší úrovni abstrakce a rozšířit knihovnu funkcí dostupných pro programátory.
Reference
- ^ „QCL - programovací jazyk pro kvantové počítače“. tuwien.ac.at. Citováno 2017-07-20.