A partir dessa pergunta, concluí que as principais linguagens de programação da computação quântica são Q # e QISKit .
Quais outras linguagens de programação estão disponíveis para a programação de computadores quânticos? Existem certos benefícios na escolha de determinados?
EDIT: Estou procurando linguagens de programação, não emuladores. Emuladores simulam coisas. Linguagens de programação são um método de escrever instruções (para objetos reais ou para emuladores). Pode haver um único idioma que funcione para vários emuladores e vice-versa.
programming
Pro Q
fonte
fonte
Respostas:
Lista da Wikipedia de linguagens de programação Quantum Computer
(Esta resposta não é uma cópia dessa página da Web, é mais atualizada e com links verificados. Em alguns casos, o link do artigo ou do site do autor é adicionado.)
Conjuntos de instruções quânticas
Quil - Uma arquitetura de conjunto de instruções para computação quântica que introduziu primeiro um modelo de memória quântica / clássica compartilhada. Veja também PyQuil .
OpenQASM - A representação intermediária introduzida pela IBM para uso com a Quantum Experience .
Linguagens de programação quântica
Línguas imperativas
QCL - Uma das primeiras linguagens de programação quântica implementadas.
Pseudocódigo quântico - [Na verdade, não é uma linguagem, mas uma boa maneira de representar operações e algoritmos quânticos.] EH Knill. "Convenções para Quantum Pseudocode", não publicado, relatório LANL LAUR-96-2724 (PDF Fonte 1 , 2 ), pesquise no arXiv todos os trabalhos que fazem referência ao trabalho de Knill.
Q | SI> - Artigo original em chinês com resumo em inglês. Versão em inglês no arXiv: " Q | SI>: um ambiente de programação quântica ".
Linguagem Q - Software para o idioma Q .
qGCL - " Alternação na programação quântica: da superposição de dados à superposição de programas ".
QMASM - Específico para sistemas D-Wave. Documentação do QMASM . Crie a página edif2qmasm e QMASM de Scott Pakinna LANL.
Linguagens funcionais
QFC e QPL - site do autor .
QML - Site principal: http://sneezy.cs.nott.ac.uk/QML/ (não responde, um mês depois), cópia Archive.Org de sneezy.cs.nott.ac.uk , tese de doutorado do autor: " Uma linguagem de programação quântica funcional "(PDF).
LIQUi |> - Extensão para F # (F Sharp).
Quantum lambda calculi - A Wikipedia lista algumas versões .
Quipper - Uma linguagem de programação funcional escalável baseada em Haskell para computação quântica. Veja também Proto-Quipper . Uma palestra de Peter Selinger (FSCD 2018) intitulada " Desafios em linguagens de programação quânticas " ( .PDF ) discute esses idiomas.
Idiomas multiparadigmas
Q # (Q Sharp) - Uma linguagem de programação específica de domínio usada para expressar algoritmos quânticos. Foi inicialmente lançado ao público pela Microsoft como parte do Quantum Development Kit. Também estão disponíveis o Microsoft Quantum Katas , uma série de tutoriais de ritmo individual destinados a ensinar elementos de computação quântica e programação Q # ao mesmo tempo.
Strawberry Fields (da XanduAI ) é uma biblioteca Python de pilha completa para projetar, simular e otimizar circuitos ópticos quânticos variáveis contínuos.
O site Quantum Computing Report possui uma página da Web Tools listando mais de uma dúzia de links, alguns novos e outros repetindo a lista acima.
Veja também a página da QuanTiki: " Lista de simuladores de controle de qualidade ", para obter uma lista enorme de simuladores e linguagens de programação baseadas em: C / C ++, CaML, OCaml, F #, juntamente com GUI, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML e outros serviços online que fornecem calculadoras, compiladores, simuladores e kits de ferramentas, etc.
Se você planeja usar um computador quântico específico, espera-se que a linguagem de programação desenvolvida pelo fabricante seja mais adequada para essa máquina específica e bem suportada.
Escolher um idioma com um número maior de seguidores significa que há mais fóruns disponíveis e, espero, mais correções de bugs e suporte.
Infelizmente, isso deixa alguns ótimos produtos de nicho para obter uma base de usuários. Tentando encontrar um idioma que seja poderoso / expressivo e com suporte em várias plataformas é o truque, a resposta é uma opinião ATM.
Uma avaliação de quatro plataformas de software: Forest (pyQuil), QISKit, ProjectQ e Quantum Developer Kit é oferecida por Ryan LaRose em " Visão geral e comparação de plataformas de software Quantum em nível de portão " (6 de julho de 2018).
Atualizações:
Cirq e OpenFermion-Cirq do Google : " Blog de IA do Google - Anúncio do Cirq: uma estrutura de código aberto para algoritmos NISQ ".
O Leap and Ocean SDK da D-Wave permite o acesso a um sistema D-Wave 2000Q ™ em um ambiente de nuvem com acesso a uma máquina de recozimento quântico com mais de 2000 qubit para testar e executar cargas de trabalho gratuitamente, assumindo que os principais algoritmos usados vão para o pool de código aberto . Inscreva-se para fazer login na página Leap In da D-Wave .
O Quantum Cloud Service (QCS) da Rigetti Computing oferece uma Quantum Machine Image, um ambiente de programação e execução virtualizado pré-configurado com o Forest 2.0, para acessar até 16 qubits de um computador de 128 bits.
Fique atento às informações sobre o Digital Annealer da Fujitsu , uma arquitetura capaz de realizar cálculos 10.000 vezes mais rápidos que um computador convencional. Se eles eventualmente fornecerem um ambiente de desenvolvimento compatível com computadores quânticos verdadeiros, esses dois parágrafos permanecerão nesta resposta, caso contrário, eu os removerei.
Embora seu chip de silício não seja de natureza quântica, a Fujitsu fez uma parceria com o 1Qbit para desenvolver o que é descrito como um " Serviço de nuvem AI inspirado na Quantum ", independentemente de o seu Annealer digital parecer um pato (um anel como um D-Wave e usar um código compatível) continua a ser visto. Visite aqui para acessar o Serviço Técnico do Revendedor Digital Fujitsu .
O QWIRE da Universidade da Pensilvânia ( coral ) é uma linguagem quântica de circuitos e uma ferramenta formal de verificação; possui uma página do GitHub .
Uma revisão de: Cirq, Cliffords.jl, dimod, sistema dwave, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra e Aqua, Qiskit Tutorials e Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC e, finalmente, XACC VQE são oferecidos no artigo: " Software de código aberto na computação quântica " (21 de dezembro de 2018), por Mark Fingerhuth, Tomáš Babej e Peter Wittek.
Voltarei a esta resposta de tempos em tempos para fazer atualizações, sem esbarrões excessivos .
fonte
Os fornecedores de hardware do modelo Gate criaram seus próprios idiomas de baixo nível:
Estes possuem sdk python de nível superior disponíveis:
Rigetti também está agrupando seu idioma em uma biblioteca de nível superior para chamar aplicativos pré-criados chamados Grove .
A Microsoft desenvolveu o Q # para executar o simulador existente e, eventualmente, o hardware físico.
Como os idiomas acima são específicos do fornecedor, o principal benefício é que você pode executar programas quânticos em seus computadores.
Fora dos idiomas específicos do fornecedor está o Scaffold, que está sendo desenvolvido por pesquisadores de Princeton. Essa linguagem é interessante, pois inclui uma cadeia de ferramentas para analisar os programas para determinar custos, potencial de desempenho e potencial de escalabilidade.
Edit: Project Q é outra estrutura que permite desenvolver programas utilizando Python, que podem ser executados em um simulador incluído.
O Oak Ridge National Labs começou a trabalhar em um projeto chamado XACC, cujo objetivo é abstrair o código específico do fornecedor para permitir que os usuários acessem as várias plataformas de hardware sem duplicar o código no idioma específico de cada fornecedor.
fonte
Ou até mesmo veja o Quipper , uma linguagem de programação Quantum funcional. Com semântica monádica, funcionalidade incorporada para computação quântica reversível, suporte a circuitos hierárquicos e muito mais! Também é usado na prática real - para um algoritmo calcular a solução da equação de Dirac por LaFlamme.
fonte
Eu incluiria o compositor da IBM. Não parece programação porque você não recebe todos os bugs, erros e funcionalidade, mas converte claramente suas instruções nos portões em QASM e as executa em um simulador real da IBM ou em um computador quântico IBM real (a escolha é do usuário).
fonte
Infelizmente, a lista no Quantiki é bastante antiga e não é bem mantida. Mesmo listar todas as linguagens de programação quânticas em uma única resposta a essa pergunta não é sustentável, pois o cenário quântico está em constante evolução. Por exemplo, o Google acaba de lançar o Cirq , uma nova estrutura de programação quântica para computadores Noisy Intermediate Scale Quantum (NISQ) que não aparece em nenhuma das respostas acima, pois foi anunciada há apenas alguns dias.
Para resolver esse problema e como resposta a outra pergunta no QC StackExchange, iniciei uma lista com curadoria de projetos de software de código aberto no GitHub, que também inclui uma visão abrangente das linguagens e estruturas de programação quântica desenvolvidas ativamente. A lista é mantida ativamente pela comunidade e constantemente adicionamos novos projetos.
fonte