← Últimos artigos
⚛️ quantum physics

A Survey of Quantum Programming Languages

Este artigo introduz um framework de classificação para pesquisar e comparar dez linguagens de programação quântica populares, identificando desafios fundamentais para o seu design futuro à luz de recentes avanços na computação quântica.

Autores originais: Quan Do, Hersh Gupta, Xiyuan Cao, Aarav Pabla, Pranav Singamsetty, Evan O'Grady, Keli Huang, Jens Palsberg

Publicado 2026-06-26
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Quan Do, Hersh Gupta, Xiyuan Cao, Aarav Pabla, Pranav Singamsetty, Evan O'Grady, Keli Huang, Jens Palsberg

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você está tentando construir uma casa, mas em vez de usar tijolos e madeira padrão, você está construindo com "tijolos quânticos" que podem existir em dois lugares ao mesmo tempo. Para fazer isso, você precisa de um conjunto de plantas e de uma linguagem para dizer à equipe de construção exatamente o que fazer.

Este artigo é um levantamento das "linguagens" que os programadores usam para escrever instruções para esses computadores quânticos. Os autores, uma equipe da UCLA, queriam descobrir quais linguagens são as melhores ferramentas para o trabalho. Eles não apenas olharam os manuais; eles realmente construíram as mesmas três estruturas complexas (algoritmos) usando dez linguagens diferentes para ver o quão fácil ou difícil cada uma era.

Aqui está um detalhamento de suas descobertas usando analogias simples:

1. O Objetivo: Construir Estruturas Quânticas

A equipe escolheu três "projetos de construção" específicos para testar as linguagens:

  • Algoritmo de Shor: Pense nisso como uma ferramenta mestra de arrombamento de fechaduras. É projetado para decompor números enormes em seus fatores primos (como desmontar uma torre gigante de LEGO para encontrar os tijolos específicos usados). Isso é famoso porque poderia, teoricamente, quebrar a segurança atual da internet.
  • Simulação de Hamiltoniano: Isso é como simular um sistema meteorológico complexo ou uma reação química. O objetivo é prever como um grupo de partículas minúsculas se moverá e interagirá ao longo do tempo. Eles testaram duas maneiras diferentes de fazer isso:
    • Trotterização: Como fazer uma longa caminhada dando muitos passos pequenos e constantes.
    • LCU (Combinação Linear de Unitárias): Como pegar um atalho combinando vários caminhos diferentes de uma só vez, mas requer um pouco mais de matemática para configurar.

2. A Estrutura: Como Eles Julgaram as Linguagens

Para comparar as dez linguagens (como Cirq, Qiskit, Q#, Silq, etc.), os autores criaram um "boletim" com três categorias principais:

  • O Modelo de Programação (O Estilo da Planta):

    • Embutido (Embedded): Imagine que você está escrevendo uma receita (a parte clássica do computador) e, dentro dessa receita, você está escrevendo um manual de instruções separado e detalhado para um robô (a parte quântica). Você tem que trocar de chapéu entre ser um chef e um programador de robôs. A maioria das linguagens atuais trabalha desta forma.
    • Híbrido: Imagine uma cozinha onde o chef e o robô estão na mesma equipe, falando a mesma língua. Você pode dizer ao robô para picar um vegetal e, imediatamente, dizer ao chef para mexer a panela, tudo em um fluxo contínuo. Isso é mais fluido, mas mais difícil de construir.
  • Expressividade (A Caixa de Ferramentas):
    As linguagens possuem as ferramentas certas para tornar o trabalho fácil?

    • Manipulação de Pauli: Possui "tijolos de LEGO" pré-fabricados para a matemática específica da física necessária, ou você tem que construir a matemática do zero?
    • Codificação de Dados Clássicos: Consegue transformar facilmente números normais em estados quânticos?
    • Inteiros Quânticos: Consegue fazer cálculos com "números quânticos" (números feitos de qubits) da mesma forma que fazemos cálculos com números normais?
    • Alocação Dinâmica: A linguagem consegue pegar uma nova ferramenta (qubit) da prateleira apenas quando você precisa dela e devolvê-la quando terminar, sem que você precise contar exatamente quantos recursos precisará de antemão?
  • Segurança (As Proteções):

    • Segurança de Tipos (Type Safety): A linguagem impede você de tentar usar um martelo em um parafuso? Ela verifica seu código antes de você executá-lo para garantir que não está cometendo erros bobos.
    • Segurança de Inicialização: Na computação quântica, se você reutilizar uma ferramenta "suja" (um qubit que foi usado antes), isso pode atrapalhar seu novo projeto. Uma linguagem segura limpa automaticamente a ferramenta (descomputa) para que ela esteja fresca e pronta para uso novamente.

3. Os Resultados: Não Existe a Ferramenta Perfeita

A equipe escreveu os mesmos programas em dez linguagens diferentes (uma mistura de ferramentas da indústria como o Cirq do Google e o Q# da Microsoft e ferramentas acadêmicas como o Silq)

  • A Grande Descoberta: Não existe uma linguagem "perfeita" ainda.

    • Algumas linguagens são ótimas em segurança (como o Silq, que limpa automaticamente suas ferramentas), mas carecem de alguns dos atalhos matemáticos sofisticados.
    • Algumas linguagens são ótimas em atalhos matemáticos (como CUDA-Q ou Cirq), mas exigem que o programador seja muito cuidadoso sobre como gerencia suas ferramentas.
    • Algumas linguagens são "Híbridas" (misturando o clássico e o quântico de forma suave), enquanto outras são "Embutidas" (mantendo-os separados).
  • O Teste de "Linhas de Código": Eles contaram quantas linhas de código foram necessárias para construir a mesma estrutura em cada linguagem.

    • Q# e Silq foram muito concisos (menos linhas) para algumas tarefas.
    • PyQuil e CUDA-Q às vezes exigiram mais linhas porque tiveram que construir manualmente coisas que outras linguagens faziam automaticamente.
    • Curiosamente, o método de simulação "LCU" sempre exigiu mais código do que o método de "Trotterização", independentemente da linguagem.

4. A Conclusão

O artigo conclui que, embora tenhamos muitas linguagens para escolher, nenhuma delas tem tudo o que precisamos.

  • Se você quer segurança, pode perder facilidade de uso.
  • Se você quer ferramentas matemáticas poderosas, pode ter que gerenciar a memória (qubits) por conta própria.

Os autores esperam que este levantamento ajude futuros designers de linguagens a construir uma linguagem "Canivete Suíço" que tenha a melhor segurança, as melhores ferramentas matemáticas e o fluxo de trabalho mais suave, tornando a programação quântica acessível a todos, não apenas a especialistas em física.

Em resumo: Programação quântica é como aprender a dirigir um novo tipo de carro. No momento, temos dez modelos diferentes (linguagens). Alguns têm ótimos freios (segurança), outros têm motores potentes (expressividade), mas nenhum deles possui a combinação perfeita de recursos ainda. Este artigo é o primeiro passo para entender como esse carro perfeito deve ser.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →