Esta página ou se(c)ção precisa ser formatada para o padrão wiki. (Setembro de 2023) |
Linguagem de computação quântica (QCL) é uma das primeiras linguagens de programação quântica.[1] A característica mais importante do QCL é o suporte para operadores e funções definidos pelo usuário. A sua sintaxe é semelhante à sintaxe da linguagem de programação C e seus tipos de dados clássicos são semelhantes aos tipos de dados primitivos em C. Pode-se combinar código clássico e código quântico no mesmo programa.
A biblioteca padrão QCL fornece operadores quânticos padrões utilizados em algoritmos quânticos, tais como:
O tipo de dado básico embutido em QCL é o qureg (quantum register). Ele pode ser interpretado como uma matriz de qubits (quantum bits).
qureg x1[2]; // registrador quântico x1 de 2-qubit qureg x2[2]; // registrador quântico x2 de 2-qubit H(x1); // operação de Hadamard em x1 H(x2[1]); // operação de Hadamard no primeiro qubit do registrador x2
Já que o interpretador QCL usa a biblioteca de simulação qlib, é possível observar o estado interno da máquina quântica durante a execução do programa quântico.
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>
Note que a operação dump é diferente de measurement, uma vez que não influencia o estado da máquina quântica e pode ser realizado apenas usando um simulador.
Como nas linguagens de programação modernas, é possível definir novas operações que podem ser usadas para manipular os dados quânticos. Por exemplo:
operator diffuse (qureg q) { H(q); // transformada de Hadamard Not(q); // Inverte q CPhase(pi, q); // Rotaciona se q=1111.. !Not(q); // desfazer inversão !H(q); // desfazer transformada de Hadamard }
define inverso sobre o operador de média usado no Algoritmo de Grover. Isso permite definir algoritmos em um nível mais alto de abstração e expandir a biblioteca de funções disponíveis para os programadores.