Programação quântica

Da Wikipédia, a enciclopédia livre
Ir para a navegação Saltar para pesquisar

A programação quântica é o processo de montagem de sequências de instruções, chamadas de programas quânticos, que são capazes de rodar em um computador quântico . As linguagens de programação quântica ajudam a expressar algoritmos quânticos usando construções de alto nível. [1] O campo está profundamente enraizado na filosofia de código aberto e, como resultado, a maior parte do software quântico discutido neste artigo está disponível gratuitamente como software de código aberto . [2]

Conjuntos de instruções quânticas

Conjuntos de instruções quânticas são usados ​​para transformar algoritmos de nível superior em instruções físicas que podem ser executadas em processadores quânticos. Às vezes, essas instruções são específicas para uma determinada plataforma de hardware, por exemplo, armadilhas de íons ou qubits supercondutores .

cQASM

cQASM, [3] também conhecido como QASM comum, é um QASM independente de hardware que garante a interoperabilidade entre todas as ferramentas de compilação e simulação quântica. Foi introduzido pelo QCA Lab na TUDelft .

Quil

Quil é uma arquitetura de conjunto de instruções para computação quântica que introduziu pela primeira vez um modelo de memória quântica/clássica compartilhada. Foi introduzido por Robert Smith, Michael Curtis e William Zeng em A Practical Quantum Instruction Set Architecture . [4] Muitos algoritmos quânticos (incluindo teletransporte quântico , correção de erros quânticos , simulação, [5] [6] e algoritmos de otimização [7] ) requerem uma arquitetura de memória compartilhada.

OpenQASM

OpenQASM [8] é a representação intermediária introduzida pela IBM para uso com Qiskit e IBM Q Experience .

Melro

Blackbird [9] [10] é um conjunto de instruções quânticas e representação intermediária usado pela Xanadu Quantum Technologies e Strawberry Fields. Ele é projetado para representar programas quânticos de variável contínua que podem ser executados em hardware quântico fotônico.

Kits de desenvolvimento de software quântico

Os kits de desenvolvimento de software quântico fornecem coleções de ferramentas para criar e manipular programas quânticos. [11] Eles também fornecem os meios para simular os programas quânticos ou prepará-los para serem executados usando dispositivos quânticos baseados em nuvem .

SDKs com acesso a processadores quânticos

Os seguintes kits de desenvolvimento de software podem ser usados ​​para executar circuitos quânticos em protótipos de dispositivos quânticos, bem como em simuladores.

oceano

Um conjunto de ferramentas Open Source desenvolvido pela D-Wave. Escrito principalmente na linguagem de programação Python, ele permite que os usuários formulem problemas nos formatos Ising Model e Quadrático Unconstrained Binary Optimization (QUBO). Os resultados podem ser obtidos enviando-se a um computador quântico on-line no Leap, o ambiente de aplicação quântica em tempo real da D-Wave, máquinas de propriedade do cliente ou amostradores clássicos. [ citação necessária ]

Um código de amostra usando projectq com Python

Projeto Q

Um projeto Open Source desenvolvido no Institute for Theoretical Physics da ETH , que usa a linguagem de programação Python para criar e manipular circuitos quânticos. [12] Os resultados são obtidos usando um simulador ou enviando trabalhos para dispositivos quânticos da IBM.

Qiskit

Um projeto Open Source desenvolvido pela IBM . [13] Circuitos quânticos são criados e manipulados usando Python . Os resultados são obtidos usando simuladores que rodam no próprio dispositivo do usuário, simuladores fornecidos pela IBM ou dispositivos quânticos protótipos fornecidos pela IBM. Além da capacidade de criar programas usando operações quânticas básicas, ferramentas de nível superior para algoritmos e benchmarking estão disponíveis em pacotes especializados. [14] Qiskit é baseado no padrão OpenQASM para representar circuitos quânticos. Ele também suporta controle de nível de pulso de sistemas quânticos via padrão QiskitPulse. [15]

Floresta

Um projeto Open Source desenvolvido pela Rigetti , que usa a linguagem de programação Python para criar e manipular circuitos quânticos. Os resultados são obtidos usando simuladores ou dispositivos quânticos protótipos fornecidos pela Rigetti. Além da capacidade de criar programas usando operações quânticas básicas, algoritmos de nível superior estão disponíveis no pacote Grove. [16] Forest é baseado no conjunto de instruções Quil .

t|ket>

Um ambiente de programação quântica e compilador de otimização desenvolvido pela Cambridge Quantum Computing que visa simuladores e vários back-ends de hardware quântico, lançado em dezembro de 2018. [17]

Campos de morango

Uma biblioteca Python de código aberto desenvolvida pela Xanadu Quantum Technologies para projetar, simular e otimizar circuitos ópticos quânticos de variável contínua (CV) . [18] [19] Três simuladores são fornecidos - um na base Fock , um usando a formulação gaussiana da óptica quântica, [20] e um usando a biblioteca de aprendizado de máquina TensorFlow . Strawberry Fields também é a biblioteca para executar programas no hardware fotônico quântico da Xanadu. [21] [22]

PennyLane

Uma biblioteca Python de código aberto desenvolvida pela Xanadu Quantum Technologies para programação diferenciável de computadores quânticos. [23] [24] [25] [26] PennyLane fornece aos usuários a capacidade de criar modelos usando TensorFlow , NumPy ou PyTorch , e conectá-los com back-ends de computadores quânticos disponíveis no IBMQ , Google Quantum , Rigetti , Honeywell e Alpine Quantum Technologies. [27]

SDKs baseados em simuladores

O acesso público a dispositivos quânticos está atualmente planejado para os seguintes SDKs, mas ainda não implementado.

Kit de desenvolvimento quântico

Um projeto desenvolvido pela Microsoft [28] como parte do .NET Framework . Os programas quânticos podem ser escritos e executados no Visual Studio e no VSCode .

Cirq

Um projeto Open Source desenvolvido pelo Google , que usa a linguagem de programação Python para criar e manipular circuitos quânticos. Os resultados são obtidos por meio de simuladores executados no próprio dispositivo do usuário.

Linguagens de programação quântica

Existem dois grupos principais de linguagens de programação quântica: linguagens de programação quânticas imperativas e linguagens de programação quânticas funcionais.

Idiomas imperativos

Os representantes mais proeminentes das linguagens imperativas são QCL, [29] LanQ [30] e Q|SI>. [31]

QCL

Quantum Computation Language (QCL) é uma das primeiras linguagens de programação quântica implementadas . [32] A característica mais importante do QCL é o suporte para operadores e funções definidos pelo usuário. Sua sintaxe se assemelha à 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.

Pseudocódigo quântico

O pseudocódigo quântico proposto por E. Knill é a primeira linguagem formalizada para descrição de algoritmos quânticos . Ele foi introduzido e, além disso, estava intimamente ligado a um modelo de máquina quântica chamado Quantum Random Access Machine (QRAM).

Q#

Uma linguagem desenvolvida pela Microsoft para ser usada com o Quantum Development Kit . [33]

Q|SI>

Q|SI> é uma plataforma embutida na linguagem .Net que suporta programação quântica em uma extensão quântica da linguagem while. [31] [34] Esta plataforma inclui um compilador da linguagem quântica while [35] e uma cadeia de ferramentas para a simulação de computação quântica, otimização de circuitos quânticos, análise de terminação de programas quânticos, [36] e verificação de programas. [37] [38]

Q idioma

Q Language é a segunda linguagem de programação quântica imperativa implementada. [39] A linguagem Q foi implementada como uma extensão da linguagem de programação C++. Ele fornece classes para operações quânticas básicas como QHadamard, QFourier, QNot e QSwap, que são derivadas da classe base Qop. Novos operadores podem ser definidos usando o mecanismo de classe C++.

A memória quântica é representada pela classe Qreg.

Qreg x1 ; // registrador quântico de 1 qubit com valor inicial 0 Qreg x2 ( 2 , 0 ); // registrador quântico de 2 qubits com valor inicial 0  
  

O processo de computação é executado usando um simulador fornecido. Ambientes ruidosos podem ser simulados usando parâmetros do simulador.

qGCL

Quantum Guarded Command Language (qGCL) foi definido por P. Zuliani em sua tese de doutorado. Ele é baseado em Guarded Command Language criado por Edsger Dijkstra .

Pode ser descrito como uma linguagem de especificação de programas quânticos.

QMASM

Quantum Macro Assembler (QMASM) é uma linguagem de baixo nível específica para recozidores quânticos, como o D-Wave. [40]

Andaime

Scaffold é uma linguagem semelhante a C, que compila para QASM e OpenQASM. Ele é construído sobre a infraestrutura do compilador LLVM para realizar otimizações no código Scaffold antes de gerar um conjunto de instruções especificado. [41] [42]

Silq

Silq é uma linguagem de programação de alto nível para computação quântica com um forte sistema de tipo estático, desenvolvido na ETH Zürich . [43] [44]

Linguagens funcionais

Esforços estão em andamento para desenvolver linguagens de programação funcionais para computação quântica . As linguagens de programação funcionais são adequadas para raciocinar sobre programas. Exemplos incluem QPL de Selinger, [45] e a linguagem semelhante a Haskell QML por Altenkirch e Grattage. [46] [47] As linguagens de programação quântica de ordem superior, baseadas no cálculo lambda , foram propostas por van Tonder, [48] Selinger e Valiron [49] e por Arrighi e Dowek. [50]

QFC e QPL

QFC e QPL são duas linguagens de programação quântica intimamente relacionadas definidas por Peter Selinger. Eles diferem apenas em sua sintaxe: o QFC usa uma sintaxe de fluxograma, enquanto o QPL usa uma sintaxe textual. Essas linguagens têm fluxo de controle clássico, mas podem operar em dados quânticos ou clássicos. Selinger fornece uma semântica denotacional para essas linguagens em uma categoria de superoperadores .

QML

QML é uma linguagem de programação quântica semelhante a Haskell por Altenkirch e Grattage. [51] [46] Ao contrário do QPL de Selinger, esta linguagem leva a duplicação, ao invés de descarte, de informação quântica como uma operação primitiva. A duplicação neste contexto é entendida como a operação que mapeiapara, e não se confunde com a operação impossível de clonagem ; os autores afirmam que é semelhante a como o compartilhamento é modelado em linguagens clássicas. QML também introduz operadores de controle clássico e quântico, enquanto a maioria das outras linguagens depende do controle clássico.

Uma semântica operacional para QML é dada em termos de circuitos quânticos , enquanto uma semântica denotacional é apresentada em termos de superoperadores , e estes se mostram concordantes. Tanto a semântica operacional quanto a denotacional foram implementadas (classicamente) em Haskell. [52]

LÍQUIDO|>

LIQUI|> (pronuncia -se liquid ) é uma extensão de simulação quântica na linguagem de programação F# . [53] Ele está sendo desenvolvido atualmente pelo Quantum Architectures and Computation Group (QuArC) [54] como parte dos esforços do StationQ na Microsoft Research. LIQUI|> procura permitir que os teóricos experimentem o design de algoritmos quânticos antes que os computadores quânticos físicos estejam disponíveis para uso. [55]

Inclui uma linguagem de programação, algoritmos de otimização e agendamento e simuladores quânticos. LIQUI|> pode ser usado para traduzir um algoritmo quântico escrito na forma de um programa de alto nível em instruções de máquina de baixo nível para um dispositivo quântico. [56]

Cálculos lambda quânticos

Cálculos lambda quânticos são extensões do cálculo lambda clássico introduzido por Alonzo Church e Stephen Cole Kleene na década de 1930. O objetivo do cálculo lambda quântico é estender as linguagens de programação quântica com uma teoria de funções de ordem superior .

A primeira tentativa de definir um cálculo lambda quântico foi feita por Philip Maymin em 1996. [57] Seu cálculo lambda-q é poderoso o suficiente para expressar qualquer computação quântica. No entanto, essa linguagem pode resolver com eficiência problemas NP-completos e, portanto, parece ser estritamente mais forte do que os modelos computacionais quânticos padrão (como a máquina de Turing quântica ou o modelo de circuito quântico ). Portanto, o cálculo lambda-q de Maymin provavelmente não é implementável em um dispositivo físico [ carece de fontes ] .

Em 2003, André van Tonder definiu uma extensão do cálculo lambda adequada para provar a correção de programas quânticos. Ele também forneceu uma implementação na linguagem de programação Scheme . [58]

Em 2004, Selinger e Valiron definiram um cálculo lambda fortemente tipado para computação quântica com um sistema de tipos baseado em lógica linear . [59]

Quipper

O Quipper foi publicado em 2013. [60] [61] Ele é implementado como uma linguagem embarcada, usando Haskell como linguagem hospedeira. [62] Por esta razão, programas quânticos escritos em Quipper são escritos em Haskell usando bibliotecas fornecidas. Por exemplo, o código a seguir implementa a preparação de uma superposição

importar  Quipper

spos  ::  Bool  ->  Circ  Qubit 
spos  b  =  do  q  <-  qinit  b 
            r  <-  hadamard  q 
            return  r

funQ

Um grupo de estudantes de graduação da Chalmers University of Technology desenvolveu uma linguagem de programação quântica funcional em 2021. Ela é inspirada no cálculo lambda de tipo quântico de Selinger e Valiron. [63] [64] O simulador quântico subjacente é parte de uma biblioteca Haskell com o mesmo nome. O código a seguir implementa a superposição em funQ

pos  :  ! ( Bit  - o  QBit ) 
spos  b  =  H  ( novo  b )

O mesmo exemplo na biblioteca Haskell seria

importar  FunQ

spos  ::  Bit  ->  QM  QBit 
spos  b  =  hadamard  =<<  new  b

Referências

  1. ^ Jarosław Adam Miszczak (2012). Estruturas de alto nível em computação quântica . ISBN 9781608458516.
  2. ^ "Lista abrangente de projetos de código aberto quânticos" . Github . Recuperado 2022-01-27 .
  3. ^ Bertels, K.; Almudever, CG; Hogaboam, JW; Ashraf, I.; Guerreschi, GG; Khammassi, N. (2018-05-24). "cQASM v1.0: Rumo a uma linguagem de montagem quântica comum" . arXiv : 1805.09607v1 [ quant-ph ].
  4. ^ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "Uma Arquitetura de Conjunto de Instruções Quânticas Práticas". arXiv : 1608,03355 [ quant-ph ].
  5. ^ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alan (2016-02-04). "A teoria dos algoritmos quântico-clássicos híbridos variacionais". Novo Jornal de Física . 18 (2): 023023. arXiv : 1509.04279 . Bibcode : 2016NJPh...18b3023M . doi : 10.1088/1367-2630/18/2/023023 . ISSN 1367-2630 . S2CID 92988541 .  
  6. ^ Rubin, Nicholas C.; Curtis, Michael J.; Zeng, William J. (2016). "Uma abordagem híbrida clássica/quântica para estudos em larga escala de sistemas quânticos com teoria de incorporação de matriz de densidade". arXiv : 1610,06910 [ quant-ph ].
  7. ^ Farhi, Eduardo; Goldstone, Jeffrey; Gutmann, Sam (2014). "Um algoritmo de otimização aproximada quântica". arXiv : 1411,4028 [ quant-ph ].
  8. ^ qiskit-openqasm: especificação OpenQASM , International Business Machines, 2017-07-04 , recuperado 2017-07-06
  9. ^ "Linguagem de montagem quântica do Blackbird — documentação do Blackbird 0.2.0" . quantum-blackbird.readthedocs.io . Recuperado 2019-06-24 .
  10. ^ Weedbrook, cristão; Amy, Mateus; Bergholm, Ville; Quesada, Nicolás; Izaac, Josh; Killoran, Nathan (2019-03-11). "Strawberry Fields: Uma Plataforma de Software para Computação Quântica Fotônica". Quântico . 3 : 129. arXiv : 1804.03159 . doi : 10.22331/q-2019-03-11-129 . S2CID 54763305 . 
  11. ^ Häner, Thomas; Steiger, Damian S.; Svore, Krysta ; Troyer, Matthias (2018). "Uma metodologia de software para compilar programas quânticos". Ciência e Tecnologia Quântica . 3 (2): 020501. arXiv : 1604.01401 . Bibcode : 2018QS&T....3b0501H . doi : 10.1088/2058-9565/aaa5cc . ISSN 2058-9565 . S2CID 1922315 .  
  12. ^ "Página inicial do ProjectQ" .
  13. ^ "Página inicial do Qiskit" .
  14. ^ "Visão geral do Qiskit" . Recuperado 2021-02-10 .
  15. ^ McKay, David C.; Alexandre, Thomas; Belo, Luciano; Biercuk, Michael J.; Bispo, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gomes, Juan; Silêncio, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nação, Paulo; Paulovicks, Brent; Winston, Erick; Wood, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). "Especificações de back-end do Qiskit para experimentos OpenQASM e OpenPulse". arXiv : 1809.03452 [ quant-ph ].
  16. ^ "Documentação Grove" .
  17. ^ "pytket" . GitHub . 22 de janeiro de 2022.
  18. ^ "Campos de morango — documentação de Campos de morango 0.8.0" . morangofields.readthedocs.io . Recuperado 2018-09-25 .
  19. ^ Killoran, Nathan; Izaac, Josh; Quesada, Nicolás; Bergholm, Ville; Amy, Mateus; Weedbrook, Christian (2019). "Strawberry Fields: Uma Plataforma de Software para Computação Quântica Fotônica". Quântico . 3 : 129. arXiv : 1804.03159 . doi : 10.22331/q-2019-03-11-129 . S2CID 54763305 . 
  20. ^ Weedbrook, cristão; Pirandola, Stefano; García-Patrón, Raúl; Cerf, Nicolas J.; Ralph, Timothy C.; Shapiro, Jeffrey H.; Lloyd, Seth (2012-05-01). "Informações quânticas gaussianas". Comentários de Física Moderna . 84 (2): 621-669. arXiv : 1110.3234 . Bibcode : 2012RvMP...84..621W . doi : 10.1103/RevModPhys.84.621 . S2CID 119250535 . 
  21. ^ "Hardware - Campos de morango" . morangofields.ai . Recuperado 2021-03-26 .
  22. ^ "Na corrida para centenas de Qubits, fótons podem ter "vantagem quântica"" . IEEE Spectrum: Technology, Engineering and Science News . 5 de março de 2021 . Recuperado em 26/03/2021 .{{cite web}}: CS1 maint: url-status ( link )
  23. ^ "Documentação PennyLane — documentação PennyLane 0.14.1" . pennylane.readthedocs.io . Recuperado 2021-03-26 .
  24. ^ "A AWS se junta ao PennyLane, uma estrutura de código aberto que combina aprendizado de máquina com computação quântica" . SiliconANGLE . 2021-02-17 . Recuperado 2021-03-26 .
  25. ^ "Projeto de código aberto SD Times da semana: PennyLane" . Tempos SD . 2021-02-26 . Recuperado 2021-03-26 .
  26. ^ Salamone, Salvatore (2020-12-13). "Resumo de notícias do Analytics em tempo real para a semana que termina em 12 de dezembro" . RTInsights . Recuperado 2021-03-26 .
  27. ^ "Plugins e ecossistema — PennyLane" . pennylane.ai . Recuperado 2021-03-26 .
  28. ^ "Documentação QDK" .
  29. ^ Bernhard Omer. "A linguagem de programação QCL" .
  30. ^ Hynek Mlnařík. "LanQ - uma linguagem de programação quântica imperativa" .
  31. ^ a b Liu, Shusen; Zhou, li; Guan, Ji; Ele, Yang; Duan, Runyao; Ying, Mingsheng (2017-05-09). "Q|SI>: Uma linguagem de programação quântica". Informação Scientia Sinica . 47 (10): 1300. arXiv : 1710.09500 . doi : 10.1360/N112017-00095 . S2CID 9163705 . 
  32. ^ "QCL - Uma linguagem de programação para computadores quânticos" . tuwien.ac.at . Recuperado 2017-07-20 .
  33. ^ "Documentação Q#" .
  34. ^ Ying, Mingsheng (janeiro de 2012). "Lógica Floyd-hoare para Programas Quânticos". ACM Trans. Programa. Lang. Sist . 33 (6): 19:1–19:49. doi : 10.1145/2049706.2049708 . ISSN 0164-0925 . S2CID 416960 .  
  35. ^ Ying, Mingsheng; Feng, Yuan (2010). "Uma linguagem de fluxograma para programação quântica" . Transações IEEE em Engenharia de Software . 37 (4): 466–485. doi : 10.1109/TSE.2010.94 . ISSN 0098-5589 . S2CID 5879273 .  
  36. ^ Ying, Mingsheng; Yu, Nengkun; Feng, Yuan; Duan, Runyao (2013). "Verificação de programas quânticos". Ciência da Programação de Computadores . 78 (9): 1679-1700. arXiv : 1106.4063 . doi : 10.1016/j.scico.2013.03.016 . S2CID 18913620 . 
  37. ^ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017). Invariantes de Programas Quânticos: Caracterização e Geração . Anais do 44º Simpósio ACM SIGPLAN sobre Princípios de Linguagens de Programação . POPL 2017. Vol. 52. Nova York, NY, EUA: ACM. págs. 818-832. doi : 10.1145/3093333.3009840 . HD : 10453/127333 . ISBN 9781450346603.
  38. ^ Liu, Tao; Li, Yangjia; Wang, Shuling; Ying, Mingsheng; Zhan, Naijun (2016). "Um provador de teoremas para a lógica quântica de Hoare e suas aplicações". arXiv : 1601.03835 [ cs.LO ].
  39. ^ "Software para a linguagem Q" . 2001-11-23. Arquivado a partir do original em 2009-06-20 . Recuperado 2017-07-20 .
  40. ^ Scott Pakin, "A Quantum Macro Assembler" , Anais da 20ª Conferência Anual de Computação Extrema de Alto Desempenho do IEEE 2016
  41. ^ Javadi-Abhari, Ali. "Scaffold: Linguagem de Programação Quântica" . Universidade de Princeton-Departamento de Ciência da Computação . Universidade de Princeton . Recuperado em 22 de setembro de 2020 .
  42. Litteken, Andrew (28 de maio de 2020). "Um compilador de pesquisa quântica baseado em LLVM atualizado com suporte adicional a OpenQASM" . Ciência e Tecnologia Quântica . 5 (3): 034013. Bibcode : 2020QS&T....5c4013L . doi : 10.1088/2058-9565/ab8c2c . OSTI 1803951 . S2CID 219101628 . Recuperado em 22 de setembro de 2020 .  
  43. ^ "O que é Silq?" . silq.ethz.ch . Recuperado 2020-06-21 .
  44. ^ Bichsel, Benjamin; Baader, Maximiliano; Gehr, Timão; Vechev, Martin (2020-06-11). "Silq: uma linguagem quântica de alto nível com não-computação segura e semântica intuitiva". Anais da 41ª Conferência ACM SIGPLAN sobre Projeto e Implementação de Linguagem de Programação . Londres Reino Unido: ACM: 286–300. doi : 10.1145/3385412.3386007 . ISBN 978-1-4503-7613-6. S2CID  219397029 .
  45. Peter Selinger, "Para uma linguagem de programação quântica" , Mathematical Structures in Computer Science 14(4):527-586, 2004.
  46. ^ a b Jonathan Grattage: QML Research (site)
  47. ^ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, JK Vizzotto, QML: A Functional Quantum Programming Language Arquivado 2006-07-10 no Wayback Machine (site)
  48. Andre van Tonder, "A Lambda Calculus for Quantum Computation" , SIAM J. Comput., 33(5), 1109–1135. (27 páginas), 2004. Também disponível em arXiv:quant-ph/0307150
  49. Peter Selinger e Benoît Valiron, "Um cálculo lambda para computação quântica com controle clássico" , Mathematical Structures in Computer Science 16(3):527-552, 2006.
  50. ^ Pablo Arrighi, Gilles Dowek, "Linear-algebraic lambda-calculus: ordem superior, codificações e confluência" , 2006
  51. ^ "QML: Uma linguagem de programação quântica funcional" . 26-09-2007. Arquivado a partir do original em 26/09/2007.
  52. ^ Jonathan Grattage, QML: A Functional Quantum Programming Language (compilador) Arquivado 2016-03-05 na Wayback Machine , 2005–2008
  53. ^ "O Simulador Integrado de Operações Quânticas da Linguagem" . github.io . Recuperado 2017-07-20 .
  54. ^ Quantum Architectures and Computation Group (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/ , 2011
  55. ^ "Estação Q" . microsoft . com . Recuperado 2017-07-20 .
  56. ^ "Operações quânticas integradas à linguagem: LIQUi|>" . Microsoft . 2016.
  57. Philip Maymin, "Estendendo o Cálculo Lambda para Expressar Algoritmos Randomizados e Quantumizados" , 1996
  58. ^ André van Tonder. "Um cálculo lambda para computação quântica (site)" .
  59. ^ Peter Selinger, Benoˆıt Valiron, "Quantum Lambda Calculus"
  60. ^ "A Língua Quipper" .
  61. ^ Alexander S. Verde; Peter LeFanu Lumsdaine; Neil J. Ross; Pedro Selinger; Benoît Valiron. "A Língua Quipper (site)" .
  62. ^ Alexander S. Verde; Peter LeFanu Lumsdaine; Neil J. Ross; Pedro Selinger; Benoît Valiron (2013). Uma introdução à programação quântica em Quipper . Notas de aula em Ciência da Computação. Vol. 7948. pp. 110–124. arXiv : 1304.5485 . doi : 10.1007/978-3-642-38986-3_10 . ISBN 978-3-642-38985-6. S2CID  9135905 .
  63. Peter Selinger, Benoˆıt Valiron, "Um cálculo lambda para computação quântica com controle clássico"
  64. Nicklas Botö, Fabian Forslund, Matilda Blomqvist, Beata Burreau, Marcus Jörgensson, Joel Rudsberg "funQ - Functional Quantum Programming"

Leitura adicional

Links externos