Espera-se que os computadores quânticos reduzam o consumo de energia de 100 para 1000 vezes porque operam a uma temperatura muito baixa na qual o processador funcionaria como um supercondutor (ou seja, pode conduzir eletricidade sem praticamente nenhuma resistência). Por outro lado, os computadores quânticos poderiam acelerar os processos de aprendizagem de máquina, reduzindo milhares de anos de aprendizado a meros segundos. Os computadores quânticos são baseados em bits quânticos (Qubits) que têm dois valores possíveis 0 ou 1. Eles não obedecem às leis newtonianas, mas leis quânticas que lhes permitem ter a probabilidade de serem 0 e 1 ao mesmo tempo. Já está confuso? Em seguida, vá para o nosso artigo que explica o que é a computação quântica e como ela funciona.

Devido ao potencial dos computadores quânticos (QC), gigantes da tecnologia como Google e IBM estão dando a oportunidade a usuários que não têm QCs para aprender a programar e manipular circuitos quânticos usando diferentes linguagens de programação quântica:

Linguagens de programação quântica

As linguagens de programação quântica são os fundamentos para interpretar ideias em instruções a serem realizadas por um computador quântico. De acordo com a Nature Reviews, as linguagens de programação quântica estão acostumadas a:

  • gerenciar dispositivos físicos existentes
  • prever os custos de execução dos algoritmos quânticos em possíveis dispositivos
  • examinar conceitos de computação quântica (qubits, superposição, emaranhamento)
  • testar e verificar algoritmos quânticos e suas implementações

As linguagens e compiladores atuais de programação quântica são focados principalmente na otimização de circuitos de baixo nível que consistem em portões quânticos. Portões quânticos são os blocos de construção de circuitos quânticos. São semelhantes a portões lógicos reversíveis, como portão de Fredkin, portão de Toffoli, portão de interação e portão de troca. No entanto, o menor portão reversível clássico tem que usar três bits, enquanto o menor portão quântico precisa usar apenas dois bits.

image

A maioria da programação quântica é feita em 3 tipos de linguagens:

Linguagens de programação quântica imperativas

image

As linguagens de programação imperativas consistem em instruções passo a passo a serem realizadas para alcançar o resultado desejado. Em computadores clássicos, as linguagens imperativas incluem C, JavaScript, Pascal, Python, etc. As linguagens mais populares do imperativo quântico são:

  1. QCL: Quantum Computing Language, uma das primeiras linguagens de programação quântica implementadas. Assemelha-se à linguagem C em relação aos tipos de sintaxe e dados.
  2. QMASM: Quantum Macro Assembler, publicado em 2016. É uma linguagem de baixo nível específica para ressar e quantum. O significado do QMASM é que ele alivia o programador de ter que conhecer detalhes de hardware específicos do sistema, ao mesmo tempo em que permite que os programas sejam expressos em um baixo nível de abstração.
  3. Silq é originalmente publicado em 2020. Silq é uma linguagem de programação de alto nível escrita em linguagem D que tem 482 estrelas e 10 colaboradores no github e é regularmente atualizada a partir de 2021.
Outras linguagens Q imperativas incluem pseudocódigo quântico, Q SI>, linguagem Q, qGCL e Andaime.

Linguagens funcionais de programação quântica

image

As linguagens funcionais não dependem de instruções passo a passo, em vez disso dependem de funções matemáticas, o que significa que as entradas são convertidas em saída usando transformações matemáticas. As linguagens funcionais são menos populares do que as imperativas porque não suportam controles de fluxo (por exemplo, declarações de loop) ou condicionals (por exemplo, se/outras declarações). No entanto, devido a essas características, elas se beneficiam de:

  • Menos insetos
    • Programadores que escrevem e revisam um código funcional afirmam detectar erros mais facilmente porque há menos lugares para comportamentos surpreendentes se esconderem
    • Erros funcionais são relatados como mais fáceis de corrigir
  • Funções aninhadas
  • Avaliação preguiçosa:
    • atrasa a avaliação de uma expressão até que seu valor seja necessário
    • evita avaliações repetidas

As principais linguagens funcionais para computadores quânticos são:

  1. QML: publicado em 2007, uma linguagem de programação quântica semelhante a Haskell baseada em lógica linear estrita. Pode integrar computação quântica reversível e irreversível
  2. Quantum Lambda Calculus: é baseado no cálculo clássico lambda introduzido em 1930 e foi definido pela primeira vez para cálculos quânticos em 1996. Ele usa funções de alta ordem (λx.x^3) Portanto, é mais forte do que os modelos computacionais quânticos padrão, como a máquina quântica Turing ou o modelo de circuito quântico.
  3. QFC e QPL: Semanticamente QFC e QPL são equivalentes. No entanto, no QFC, os programas quânticos são representados usando sintaxe de fluxograma, mas na estrutura sintática QPL de programas quânticos são representados usando representações textuais.
Outras linguagens funcionais incluem LIQUi > e Quipper.

Linguagens multi paradigmas

Há também linguagens de vários paradigmas que são específicas de domínio, como Q# para Microsoft e Strawberry Fields para XanduAI.

Kits de desenvolvimento de software quântico

Se o desenvolvedor usa linguagens imperativas, funcionais ou multi-paradigmas para escrever o algoritmo quântico, um software quântico é necessário para criar e manipular o programa quântico, e os SDKs são obrigados a executar circuitos quânticos em protótipos de dispositivos quânticos, bem como em simuladores. Esses ambientes de software para programas quânticos geralmente são de código aberto e utilizam linguagem python.

Para obter mais detalhes sobre SDKs quânticos, sinta-se livre para ler nosso artigo Quantum Software Development Kits

Algoritmos de programação quântica

O objetivo de programar computadores quânticos é resolver os problemas da física quântica. Algoritmos quânticos que podem ser programados incluem:

  • Algoritmos de álgebra e teoria numégio, como fatoração e somas de Gauss
  • Aproximações e simulações, como simulação quântica, funções de zeta e invariantes de nó
  • Algoritmos de aprendizagem de máquina, como agrupamento, classificação binária e treinamento de redes neurais

Mais algoritmos quânticos que podem ser programados são mencionados no “Zoológico do Algoritmo Quântico” por Stephen Jordan, dos Institutos Nacionais de Padrões e Tecnologia.

Desafios na programação quântica

As dificuldades na programação quântica de computadores surgem de:

  • Dificuldades na formulação de línguas QC universais
  • Incompletude e variáveis ocultas na mecânica quântica
  • Os computadores quânticos ainda estão em sua infância trabalhando em qubits < 100, portanto, não são fortes o suficiente para executar algoritmos quânticos complexos.

No entanto, a disponibilidade de SDKs de código aberto está permitindo que as comunidades encontrem soluções para desafios de programação e encontrem aplicações mais práticas para computação quântica.

Para mais sobre computação quântica

Para ler sobre aplicações de computação quântica, sinta-se livre para ler os 20+ Melhores Aplicativos de Computação Quântica / Casos de Uso em 2021

Você também pode achar úteis os seguintes artigos:


Autor: Alamira Jouman Hajjar

Artigo Original