El lenguaje de computación cuántica ( QCL ) es uno de los primeros lenguajes de programación cuántica implementados . [ 1 ] La característica más importante de QCL es la compatibilidad con operadores y funciones definidos por el usuario. Su sintaxis se asemeja a la del lenguaje de programación C y sus tipos de datos clásicos son similares a los tipos de datos primitivos de C. Es posible combinar código clásico y código cuántico en un mismo programa.
El lenguaje se creó antes de que existieran las computadoras cuánticas de múltiples cúbits, y la única implementación de QCL utiliza un intérprete con una computadora cuántica integrada que simula la física clásica.
QCL se creó para explorar conceptos de programación para computadoras cuánticas. [ 2 ] [ 3 ] [ 4 ]
La biblioteca QCL proporciona operadores cuánticos estándar utilizados en algoritmos cuánticos como: [ 5 ]
- Controlado-no con muchos cúbits objetivo,
- Operación de Hadamard en muchos cúbits,
- Fase y fase controlada.
- Algoritmos cuánticos para la suma, multiplicación y exponenciación con constantes binarias (todas de módulo n).
- La transformada cuántica de Fourier
Sintaxis
- Tipos de datos
- Cuántico - qureg, quvoid, quconst, quscratch, qucond
- Clásico: entero, real, complejo, booleano, cadena, vector, matriz, tensor
- Tipos de función
- qufunct - Operadores pseudoclásicos. Solo pueden cambiar la permutación de los estados base.
- operador - Operadores unitarios generales. Permiten cambiar la amplitud.
- Procedimiento: Se pueden llamar a las funciones measure, print y dump dentro de esta función. Esta función no es reversible.
- Funciones integradas
- Cuántico
- qufunct - Fanout, Swap, Perm2, Perm4, Perm8, Not, CNot
- Operador - Matriz2x2, Matriz4x4, Matriz8x8, Rotación, Mezcla, H, CPhase, SqrtNot, X, Y, Z, S, T
- procedimiento - medir, volcar, reiniciar
- Clásico
- Aritmética: seno, coseno, tangente, logaritmo, raíz cuadrada, ...
- Complejo - Re, Im, conj
- Cuántico
Ejemplos
El tipo de dato cuántico básico integrado en QCL es el qureg (registro cuántico). Se puede interpretar como una matriz de cúbits (bits cuánticos).
qureg x1 [ 2 ]; // Registro cuántico de 2 cúbits x1 qureg x2 [ 2 ]; // Registro cuántico de 2 cúbits x2 H ( x1 ); // Operación de Hadamard en x1 H ( x2 [ 1 ]); // Operación de Hadamard en el primer cúbit del registro x2Dado que el intérprete qcl utiliza la biblioteca de simulación qlib, es posible observar el estado interno de la máquina cuántica durante la ejecución del programa cuántico.
qcl> volcado ESTADO: 4 / 32 cúbits asignados, 28 / 32 cúbits libres 0,35355 |0> + 0,35355 |1> + 0,35355 |2> + 0,35355 |3> + 0,35355 |8> + 0,35355 |9> + 0,35355 |10> + 0,35355 |11> Cabe señalar que la operación de volcado es diferente de la medición, ya que no influye en el estado de la máquina cuántica y solo puede realizarse mediante un simulador.
Al igual que en los lenguajes de programación modernos, es posible definir nuevas operaciones que se pueden utilizar para manipular datos cuánticos. Por ejemplo:
operador difuso ( qureg q ) { H ( q ); // Transformación de Hadamard Not ( q ); // Invertir q CPhase ( pi , q ); // Rotar si q=1111.. ! Not ( q ); // deshacer la inversión ! H ( q ); // deshacer la Transformación de Hadamard }Define el operador inverso respecto a la media utilizado en el algoritmo de Grover (a veces llamado operador de difusión de Grover ). Esto permite definir algoritmos con un mayor nivel de abstracción y ampliar el conjunto de funciones disponibles para los programadores.
Referencias
- ↑ "QCL - Un lenguaje de programación para computadoras cuánticas" . tuwien.ac.at . Consultado el 20 de julio de 2017 .
- ↑ Ömer, Bernhard (2000-01-20). Programación cuántica en QCL (PDF) (Tesis). Instituto de Física Teórica, Universidad Tecnológica de Viena . Recuperado el 24 de mayo de 2021 .
- ↑ Ömer, Bernhard (29 de abril de 2003). "Conceptos clásicos en programación cuántica". Revista Internacional de Física Teórica . 44 (7): 943– 955. arXiv : quant-ph/0211100 . doi : 10.1007/s10773-005-7071-x . S2CID 119373370 .
- ↑ Ömer, Bernhard (2 de septiembre de 2009). "Programación cuántica estructurada" (PDF) . Instituto de Física Teórica, Universidad Tecnológica de Viena.
- ↑ Página web de QCL
- Lenguajes de programación
- Programación cuántica