stringtranslate.com

Programación cuántica

La programación cuántica es el proceso de diseñar o ensamblar secuencias de instrucciones, llamadas circuitos cuánticos, utilizando puertas, interruptores y operadores para manipular un sistema cuántico para obtener el resultado deseado o los resultados de un experimento determinado. Los algoritmos de circuitos cuánticos se pueden implementar en circuitos integrados, realizarse con instrumentación o escribirse en un lenguaje de programación para usar con una computadora cuántica o un procesador cuántico.

Con los sistemas basados ​​en procesadores cuánticos, los lenguajes de programación cuánticos ayudan a expresar algoritmos cuánticos utilizando construcciones de alto nivel. [1] El campo está profundamente arraigado en la filosofía de código abierto y, como resultado, la mayor parte del software cuántico analizado en este artículo está disponible gratuitamente como software de código abierto . [2]

Las computadoras cuánticas, como las basadas en el protocolo KLM , un modelo de computación cuántica óptica lineal (LOQC), utilizan algoritmos (circuitos) cuánticos implementados con electrónica, circuitos integrados, instrumentación, sensores y/o mediante otros medios físicos. [ no verificado en el cuerpo ]

Otros circuitos diseñados para la experimentación relacionada con sistemas cuánticos pueden estar basados ​​en instrumentación y sensores. [ no verificado en el cuerpo ]

Conjuntos de instrucciones cuánticas

Los conjuntos de instrucciones cuánticas se utilizan para convertir algoritmos de nivel superior en instrucciones físicas que pueden ejecutarse en procesadores cuánticos. A veces, estas instrucciones son específicas de una plataforma de hardware determinada, por ejemplo, trampas de iones o qubits superconductores .

Mirlo

Blackbird [3] [4] es un conjunto de instrucciones cuánticas y una representación intermedia utilizada por Xanadu Quantum Technologies y Strawberry Fields. Está diseñado para representar programas cuánticos de variable continua que pueden ejecutarse en hardware cuántico fotónico.

cQASM

cQASM, [5] también conocido como QASM común, es un lenguaje ensamblador cuántico independiente del hardware que garantiza la interoperabilidad entre todas las herramientas de simulación y compilación cuántica. Fue presentado por el QCA Lab de TUDelft .

AbiertoQASM

OpenQASM [6] es la representación intermedia introducida por IBM para su uso con Qiskit e IBM Q Experience .

pluma

Quil es una arquitectura de conjunto de instrucciones para la computación cuántica que introdujo por primera vez un modelo de memoria cuántica/clásica compartida. Fue introducido por Robert Smith, Michael Curtis y William Zeng en Una arquitectura práctica de conjunto de instrucciones cuánticas . [7] Muchos algoritmos cuánticos (incluidos la teletransportación cuántica , la corrección de errores cuánticos , la simulación, [8] [9] y los algoritmos de optimización [10] ) requieren una arquitectura de memoria compartida.

Kits de desarrollo de software cuántico

Los kits de desarrollo de software cuántico proporcionan colecciones de herramientas para crear y manipular programas cuánticos. [11] También proporcionan los medios para simular los programas cuánticos o prepararlos para ejecutarlos utilizando dispositivos cuánticos basados ​​en la nube y dispositivos cuánticos autohospedados.

SDK con acceso a procesadores cuánticos

Los siguientes kits de desarrollo de software se pueden utilizar para ejecutar circuitos cuánticos en prototipos de dispositivos cuánticos, así como en simuladores.

circo

Un proyecto de código abierto desarrollado por Google , que utiliza el lenguaje de programación Python para crear y manipular circuitos cuánticos. Los programas escritos en Cirq se pueden ejecutar en IonQ , Pasqal, [12] Rigetti y Alpine Quantum Technologies. [13]

clásico

Un IDE cuántico basado en la nube desarrollado por Classiq utiliza un lenguaje cuántico de alto nivel, Qmod, para generar circuitos cuánticos escalables y eficientes con el motor de síntesis compatible con hardware, que se puede implementar en una amplia gama de QPU. La plataforma incluye una gran biblioteca de algoritmos cuánticos.

Bosque

Un proyecto de código abierto desarrollado por Rigetti , que utiliza el lenguaje de programación Python para crear y manipular circuitos cuánticos. Los resultados se obtienen utilizando simuladores o prototipos de dispositivos cuánticos proporcionados por Rigetti. Además de la capacidad de crear programas utilizando operaciones cuánticas básicas, el paquete Grove dispone de algoritmos de nivel superior. [14] Forest se basa en el conjunto de instrucciones de Quil .

Océano

Un conjunto de herramientas de código abierto desarrollado por D-Wave. Escrito principalmente en el lenguaje de programación Python, permite a los usuarios formular problemas en los formatos Ising Model y Quadratic Unconstrained Binary Optimization (QUBO). Los resultados se pueden obtener enviándolos a una computadora cuántica en línea en Leap, el entorno de aplicaciones cuánticas en tiempo real de D-Wave, máquinas propiedad del cliente o muestreadores clásicos. [ cita necesaria ]

Un código de muestra usando projectq con Python

PennyLane

Una biblioteca Python de código abierto desarrollada por Xanadu Quantum Technologies para la programación diferenciable de computadoras cuánticas. [15] [16] [17] [18] PennyLane ofrece a los usuarios la posibilidad de crear modelos utilizando TensorFlow , NumPy o PyTorch , y conectarlos con backends de computadoras cuánticas disponibles en IBMQ , Google Quantum , Rigetti , Quantinuum [19] y Alpine. Tecnologías cuánticas. [13] [20]

percepción

Un proyecto de código abierto creado por Quandela  [fr] para diseñar circuitos cuánticos fotónicos y desarrollar algoritmos cuánticos, basados ​​en Python . Las simulaciones se ejecutan en el propio ordenador del usuario o en la nube . Perceval también se utiliza para conectarse al procesador cuántico fotónico basado en la nube de Quandela . [21] [22]

ProyectoQ

Un proyecto de código abierto desarrollado en el Instituto de Física Teórica de ETH , que utiliza el lenguaje de programación Python para crear y manipular circuitos cuánticos. [23] Los resultados se obtienen utilizando un simulador o enviando trabajos a dispositivos cuánticos de IBM.

Qibo

Una API completa de código abierto para simulación cuántica, control y calibración de hardware cuántico desarrollada por múltiples laboratorios de investigación, incluidos QRC , CQT e INFN . Qibo es un marco modular que incluye múltiples backends para simulación cuántica y control de hardware. [24] [25] Este proyecto tiene como objetivo proporcionar un marco de control de hardware cuántico independiente de la plataforma con controladores para múltiples instrumentos [26] y herramientas para la calibración, caracterización y validación cuántica. [27] Este marco se centra en dispositivos cuánticos autohospedados al simplificar el desarrollo de software requerido en los laboratorios.

Qiskit

Un proyecto de código abierto desarrollado por IBM . [28] Los circuitos cuánticos se crean y manipulan utilizando Python . Los resultados se obtienen utilizando simuladores que se ejecutan en el propio dispositivo del usuario, simuladores proporcionados por IBM o prototipos de dispositivos cuánticos proporcionados por IBM. Además de la capacidad de crear programas utilizando operaciones cuánticas básicas, se encuentran disponibles herramientas de nivel superior para algoritmos y evaluaciones comparativas dentro de paquetes especializados. [29] Qiskit se basa en el estándar OpenQASM para representar circuitos cuánticos. También admite el control del nivel de pulso de sistemas cuánticos a través del estándar QiskitPulse. [30]

Qrisp

Qrisp [31] es un proyecto de código abierto coordinado por la Fundación Eclipse [32] y desarrollado en programación Python por Fraunhofer FOKUS [33] Qrisp es un lenguaje de programación de alto nivel para crear y compilar algoritmos cuánticos. Su modelo de programación estructurado permite un desarrollo y mantenimiento escalables. La sintaxis expresiva se basa en variables en lugar de qubits, con QuantumVariable como clase principal y funciones en lugar de puertas. Herramientas adicionales, como un simulador de alto rendimiento y un cálculo automático, complementan el amplio marco. Además, es independiente de la plataforma, ya que ofrece una compilación alternativa de funciones elementales hasta el nivel de circuito, basada en conjuntos de puertas específicos del dispositivo.

Kit de desarrollo cuántico

Un proyecto desarrollado por Microsoft [34] como parte de .NET Framework . Los programas cuánticos se pueden escribir y ejecutar en Visual Studio y VSCode utilizando el lenguaje de programación cuántica Q#. Los programas desarrollados en QDK se pueden ejecutar en Azure Quantum de Microsoft, [35] y en computadoras cuánticas de Quantinuum , [19] IonQ y Pasqal. [12]

campos de fresas

Una biblioteca Python de código abierto desarrollada por Xanadu Quantum Technologies para diseñar, simular y optimizar circuitos ópticos cuánticos de variable continua (CV) . [36] [37] Se proporcionan tres simuladores: uno basado en Fock , otro que utiliza la formulación gaussiana de la óptica cuántica, [38] y otro que utiliza la biblioteca de aprendizaje automático TensorFlow . Strawberry Fields es también la biblioteca para ejecutar programas en el hardware fotónico cuántico de Xanadu. [39] [40]

t|ket>

Un entorno de programación cuántica y un compilador de optimización desarrollado por Cambridge Quantum Computing dirigido a simuladores y varios back-ends de hardware cuántico, lanzado en diciembre de 2018. [41]

Lenguajes de programación cuántica

Hay dos grupos principales de lenguajes de programación cuántica: lenguajes de programación cuántica imperativos y lenguajes de programación cuántica funcionales .

Idiomas imperativos

Los representantes más destacados de los lenguajes imperativos son QCL, [42] LanQ [43] y Q|SI>. [44]

ket

Ket [45] es un lenguaje integrado de código abierto diseñado para facilitar la programación cuántica, aprovechando la sintaxis familiar y la simplicidad de Python. Sirve como un componente integral de la plataforma de programación Ket Quantum, [46] integrándose perfectamente con una biblioteca de tiempo de ejecución de Rust y un simulador cuántico. Mantenido por Quantuloop, el proyecto enfatiza la accesibilidad y la versatilidad para investigadores y desarrolladores. El siguiente ejemplo demuestra la implementación de un estado Bell usando Ket:

de  importación de ket  * a ,  b  =  quant ( 2 )  # Asignar dos bits cuánticosH ( a )  # Poner el qubit `a` en una superposicióncnot ( a ,  b )  # Enreda los dos qubits en el estado Bellm_a  =  medida ( a )  # Mide el qubit `a`, colapsando también el qubit `b`m_b  =  medida ( b )  # Medir qubit `b`# Afirmar que la medida de ambos qubits siempre será igualafirmar  m_a . valor  ==  m_b . valor

LQP

La Lógica de Programas Cuánticos (LQP) es una lógica cuántica dinámica, capaz de expresar características importantes de mediciones cuánticas y evoluciones unitarias de estados multipartitos, y proporciona caracterizaciones lógicas de diversas formas de entrelazamiento. La lógica se ha utilizado para especificar y verificar la exactitud de varios protocolos en computación cuántica. [47] [48]

lenguaje q

Q Language es el segundo lenguaje de programación cuántica imperativo implementado. [49] Q Language se implementó como una extensión del lenguaje de programación C++. Proporciona clases para operaciones cuánticas básicas como QHadamard, QFourier, QNot y QSwap, que se derivan de la clase base Qop. Se pueden definir nuevos operadores utilizando el mecanismo de clase C++.

La memoria cuántica está representada por la clase Qreg.

Qreg x1 ; // registro cuántico de 1 qubit con valor inicial 0 Qreg x2 ( 2 , 0 ); // registro cuántico de 2 qubits con valor inicial 0    

El proceso de cálculo se ejecuta utilizando un simulador proporcionado. Se pueden simular entornos ruidosos utilizando los parámetros del simulador.

P#

Un lenguaje desarrollado por Microsoft para usarse con el kit de desarrollo Quantum. [50]

QCL

El lenguaje de computación cuántica (QCL) es uno de los primeros lenguajes de programación cuántica implementados . [51] La característica más importante de QCL es el soporte para operadores y funciones definidos por el usuario. Su sintaxis se asemeja a la sintaxis del lenguaje de programación C y sus tipos de datos clásicos son similares a los tipos de datos primitivos en C. Se puede combinar código clásico y código cuántico en el mismo programa.

qGCL

El lenguaje de comando protegido cuántico (qGCL) fue definido por P. Zuliani en su tesis doctoral. Está basado en Guarded Command Language creado por Edsger Dijkstra .

Puede describirse como un lenguaje de especificación de programas cuánticos.

QMASM

Quantum Macro Assembler (QMASM) es un lenguaje de bajo nivel específico para recocedores cuánticos como el D-Wave. [52]

qmod

El lenguaje de modelado cuántico (Qmod) es un lenguaje de alto nivel que abstrae la operación del qubit a nivel de puerta, proporcionando un enfoque funcional para la implementación de algoritmos cuánticos en registros cuánticos. El lenguaje es parte de la plataforma Classiq y se puede usar directamente con su sintaxis nativa, a través de un SDK de Python o con un editor visual; todos los métodos pueden aprovechar la biblioteca más grande de algoritmos y la optimización eficiente del circuito.

Q|SI>

Q|SI> es una plataforma integrada en el lenguaje .Net que admite la programación cuántica en una extensión cuántica del lenguaje while. [44] [53] Esta plataforma incluye un compilador del lenguaje while cuántico [54] y una cadena de herramientas para la simulación de computación cuántica, optimización de circuitos cuánticos, análisis de terminación de programas cuánticos, [55] y verificación de programas. [56] [57]

Pseudocódigo cuántico

El pseudocódigo cuántico propuesto por E. Knill es el primer lenguaje formalizado para la descripción de algoritmos cuánticos . Se introdujo y, además, se relacionó estrechamente con un modelo de máquina cuántica llamada Máquina Cuántica de Acceso Aleatorio (QRAM).

Andamio

Scaffold es un lenguaje similar a C, que se compila en QASM y OpenQASM. Está construido sobre la infraestructura del compilador LLVM para realizar optimizaciones en el código Scaffold antes de generar un conjunto de instrucciones específico. [58] [59]

Silq

Silq es un lenguaje de programación de alto nivel para computación cuántica con un fuerte sistema de tipo estático, desarrollado en ETH Zürich . [60] [61]

Lenguajes funcionales

Se están realizando esfuerzos para desarrollar lenguajes de programación funcionales para la computación cuántica . Los lenguajes de programación funcionales son muy adecuados para razonar sobre programas. Los ejemplos incluyen QPL de Selinger, [62] y el lenguaje QML similar a Haskell de Altenkirch y Grattage. [63] [64] Van Tonder, [65] Selinger y Valiron [66] y Arrighi y Dowek han propuesto lenguajes de programación cuántica de orden superior, basados ​​en el cálculo lambda . [67]

LÍQUIDO|>

LIQUi|> (pronunciado líquido ) es una extensión de simulación cuántica del lenguaje de programación F# . [68] Actualmente está siendo desarrollado por el Grupo de Computación y Arquitecturas Cuánticas (QuArC) [69] como parte de los esfuerzos de StationQ en Microsoft Research. LIQUi|> busca permitir a los teóricos experimentar con el diseño de algoritmos cuánticos antes de que las computadoras cuánticas físicas estén disponibles para su uso. [70]

Incluye un lenguaje de programación, algoritmos de optimización y programación y simuladores cuánticos. LIQUi|> se puede utilizar para traducir un algoritmo cuántico escrito en forma de programa de alto nivel en instrucciones de máquina de bajo nivel para un dispositivo cuántico. [71]


QFC y QPL

QFC y QPL son dos lenguajes de programación cuántica estrechamente relacionados definidos por Peter Selinger. Sólo se diferencian en su sintaxis: QFC usa una sintaxis de diagrama de flujo, mientras que QPL usa una sintaxis textual. Estos lenguajes tienen un flujo de control clásico pero pueden operar con datos cuánticos o clásicos. Selinger ofrece una semántica denotacional para estos lenguajes en una categoría de superoperadores .

QML

QML es un lenguaje de programación cuántica similar a Haskell de Altenkirch y Grattage. [72] [63] A diferencia del QPL de Selinger, este lenguaje toma la duplicación, en lugar de descartar, la información cuántica como una operación primitiva. En este contexto, se entiende por duplicación la operación que se corresponde con la operación imposible de clonación , y no debe confundirse con ella ; Los autores afirman que es similar a cómo se modela el compartir en las lenguas clásicas. QML también introduce operadores de control clásicos y cuánticos, mientras que la mayoría de los demás lenguajes se basan en el control clásico.

Se proporciona una semántica operativa para QML en términos de circuitos cuánticos , mientras que se presenta una semántica denotacional en términos de superoperadores , y se demuestra que estos concuerdan. Tanto la semántica operativa como la denotacional se han implementado (clásicamente) en Haskell. [73]

Cálculos lambda cuánticos

Los cálculos lambda cuánticos son extensiones del cálculo lambda clásico introducido por Alonzo Church y Stephen Cole Kleene en la década de 1930. El propósito de los cálculos lambda cuánticos es ampliar los lenguajes de programación cuántica con una teoría de funciones de orden superior .

El primer intento de definir un cálculo lambda cuántico fue realizado por Philip Maymin en 1996. [74] Su cálculo lambda-q es lo suficientemente potente como para expresar cualquier cálculo cuántico. Sin embargo, este lenguaje puede resolver eficientemente problemas NP-completos y, por lo tanto, parece ser estrictamente más fuerte que los modelos computacionales cuánticos estándar (como la máquina cuántica de Turing o el modelo de circuito cuántico ). Por lo tanto, el cálculo lambda-q de Maymin probablemente no se pueda implementar en un dispositivo físico [ cita necesaria ] .

En 2003, André van Tonder definió una extensión del cálculo lambda adecuada para demostrar la exactitud de los programas cuánticos. También proporcionó una implementación en el lenguaje de programación Scheme . [75]

En 2004, Selinger y Valiron definieron un cálculo lambda fuertemente tipado para la computación cuántica con un sistema de tipos basado en lógica lineal . [76]

bromista

Quipper se publicó en 2013. [77] [78] Se implementa como un lenguaje integrado, utilizando Haskell como lenguaje anfitrión. [79] Por esta razón, los programas cuánticos escritos en Quipper se escriben en Haskell utilizando las bibliotecas proporcionadas. Por ejemplo, el siguiente código implementa la preparación de una superposición

importar Quipper spos :: Bool -> Circ Qubit spos b = hacer q <- qinit b r <- hadamard q devolver r                  

Referencias

  1. ^ Jarosław Adam Miszczak (2012). Estructuras de alto nivel en Computación Cuántica . Editores Morgan y Claypool. ISBN 9781608458516.
  2. ^ "Lista completa de proyectos cuánticos de código abierto". Github . Consultado el 27 de enero de 2022 .
  3. ^ "Lenguaje ensamblador cuántico Blackbird: documentación de Blackbird 0.2.0". quantum-blackbird.readthedocs.io . Consultado el 24 de junio de 2019 .
  4. ^ Weedbrook, cristiano; Amy, Mateo; Bergholm, Ville; Quesada, Nicolás; Isaac, Josh; Killoran, Nathan (11 de marzo de 2019). "Strawberry Fields: una plataforma de software para la computación cuántica fotónica". Cuántico . 3 : 129. arXiv : 1804.03159 . Código Bib : 2019Cantidad...3..129K. doi :10.22331/q-2019-03-11-129. S2CID  54763305.
  5. ^ Bertels, K.; Almudever, CG; Hogaboam, JW; Ashraf, I.; Guerreschi, GG; Khammassi, N. (24 de mayo de 2018). "cQASM v1.0: hacia un lenguaje ensamblador cuántico común". arXiv : 1805.09607v1 [cuántico-ph].
  6. ^ qiskit-openqasm: especificación OpenQASM, International Business Machines, 4 de julio de 2017 , consultado el 6 de julio de 2017
  7. ^ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "Una arquitectura práctica de conjunto de instrucciones cuánticas". arXiv : 1608.03355 [cuántico-ph].
  8. ^ McClean, Jarrod R.; Romero, Jonatán; Babbush, Ryan; Aspuru-Guzik, Alán (4 de febrero de 2016). "La teoría de los algoritmos clásicos cuánticos híbridos variacionales". Nueva Revista de Física . 18 (2): 023023. arXiv : 1509.04279 . Código Bib : 2016NJPh...18b3023M. doi :10.1088/1367-2630/18/2/023023. ISSN  1367-2630. S2CID  92988541.
  9. ^ Rubin, Nicolás C.; Curtis, Michael J.; Zeng, William J. (2016). "Un enfoque híbrido clásico/cuántico para estudios a gran escala de sistemas cuánticos con teoría de incrustación de matrices de densidad". arXiv : 1610.06910 [cuántico-ph].
  10. ^ Farhi, Eduardo; Goldstone, Jeffrey; Gutmann, Sam (2014). "Un algoritmo de optimización cuántica aproximada". arXiv : 1411.4028 [cuántico-ph].
  11. ^ Haner, Thomas; Steiger, Damián S.; Svore, Krysta ; Troyer, Matías (2018). "Una metodología de software para compilar programas cuánticos". Ciencia y tecnología cuánticas . 3 (2): 020501. arXiv : 1604.01401 . Código Bib : 2018QS&T....3b0501H. doi :10.1088/2058-9565/aaa5cc. ISSN  2058-9565. S2CID  1922315.
  12. ^ ab "PASQAL". PASQAL .
  13. ^ ab "Inicio". AQT | TECNOLOGÍAS CUÁNTICAS ALPINAS .
  14. ^ "¡Bienvenido a la documentación de Grove! - Documentación de Grove 1.7.0". grove-docs.readthedocs.io .
  15. ^ "Documentación de PennyLane - Documentación de PennyLane 0.14.1". pennylane.readthedocs.io . Consultado el 26 de marzo de 2021 .
  16. ^ "AWS se une a PennyLane, un marco de código abierto que combina el aprendizaje automático con la computación cuántica". ÁNGULO de silicio . 17 de febrero de 2021 . Consultado el 26 de marzo de 2021 .
  17. ^ "Proyecto de código abierto de la semana de SD Times: PennyLane". Tiempos SD . 26 de febrero de 2021 . Consultado el 26 de marzo de 2021 .
  18. ^ Salamone, Salvatore (13 de diciembre de 2020). "Resumen de noticias sobre análisis en tiempo real para la semana que finaliza el 12 de diciembre". RTInsights . Consultado el 26 de marzo de 2021 .
  19. ^ ab "Aceleración de la computación cuántica". www.quantinuum.com .
  20. ^ "Complementos y ecosistema: PennyLane". pennylane.ai . Consultado el 26 de marzo de 2021 .
  21. ^ "La puissance d'un ordinateur quantique testée en ligne (El poder de una computadora cuántica probado en línea)". Le Monde.fr . El mundo. 22 de noviembre de 2022.
  22. ^ Heurtel, Nicolás; Fyrillas, Andreas; de Gliniasty, Grégoire; Le Bihan, Raphaël; Malherbe, Sébastien; Pailhas, Marceau; Bertasi, Eric; Bourdoncle, Boris; Emeriau, Pierre-Emmanuel; Mezher, Rawad; Música, Lucas; Belabas, Nadia; Valiron, Benoît; Senellart, Pascale; Mansfield, Shane; Senellart, Jean (21 de febrero de 2023). "Perceval: una plataforma de software para computación cuántica fotónica variable discreta". Cuántico . 7 : 931. arXiv : 2204.00602 . Código Bib : 2023 Quant... 7.. 931H. doi :10.22331/q-2023-02-21-931. S2CID  247922568.
  23. ^ "Inicio".
  24. ^ Efthymiou, Stavros; Ramos-Calderer, Sergi; Bravo-Prieto, Carlos; Pérez-Salinas, Adrián; García-Martín, Diego; García-Sáez, Artur; Latorre, José Ignacio; Carrazza, Stefano (1 de enero de 2022). "Qibo: un marco para la simulación cuántica con aceleración de hardware". Ciencia y tecnología cuánticas . 7 (1): 015018. arXiv : 2009.01845 . Código Bib : 2022QS&T....7a5018E. doi :10.1088/2058-9565/ac39f5. hdl :2434/887963. ISSN  2058-9565. S2CID  221507478.
  25. ^ Efthymiou, Stavros; Lazarín, Marco; Pascual, Andrea; Carrazza, Stefano (22 de septiembre de 2022). "Simulación cuántica con compilación justo a tiempo". Cuántico . 6 : 814. arXiv : 2203.08826 . Código Bib : 2022 Quant... 6.. 814E. doi : 10.22331/q-2022-09-22-814 . S2CID  247518955.
  26. ^ "Qibolab". 2 de noviembre de 2022 – vía GitHub.
  27. ^ "Qibocal". 1 de noviembre de 2022 – vía GitHub.
  28. ^ "qiskit.org". www.qiskit.org .
  29. ^ "Descripción general de Qiskit" . Consultado el 10 de febrero de 2021 .
  30. ^ McKay, David C.; Alejandro, Tomás; Bello, Luciano; Biercuk, Michael J.; Obispo, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gómez, Juan; Silencio, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nación, Pablo; Paulovicks, Brent; Winston, Erick; Madera, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). "Especificaciones de backend de Qiskit para experimentos OpenQASM y OpenPulse". arXiv : 1809.03452 [cuántico-ph].
  31. ^ "Sitio web oficial de Qrisp".
  32. ^ "Fundación Eclipse (sitio web)".
  33. ^ "Fraunhofer FOKUS (sitio web)".
  34. ^ "Documentación de Azure Quantum, referencia de API de QDK y Q#: Azure Quantum". aprender.microsoft.com .
  35. ^ "¿Qué es Azure Quantum? - Azure Quantum". aprender.microsoft.com . 11 de enero de 2023.
  36. ^ "Strawberry Fields - Documentación de Strawberry Fields 0.8.0". Strawberryfields.readthedocs.io . Consultado el 25 de septiembre de 2018 .
  37. ^ Killoran, Nathan; Isaac, Josh; Quesada, Nicolás; Bergholm, Ville; Amy, Mateo; Weedbrook, cristiano (2019). "Strawberry Fields: una plataforma de software para la computación cuántica fotónica". Cuántico . 3 : 129. arXiv : 1804.03159 . Código Bib : 2019Cantidad...3..129K. doi :10.22331/q-2019-03-11-129. S2CID  54763305.
  38. ^ Weedbrook, cristiano; Pirandola, Stefano; García-Patrón, Raúl; Cerf, Nicolás J.; Ralph, Timothy C.; Shapiro, Jeffrey H.; Lloyd, Seth (1 de mayo de 2012). "Información cuántica gaussiana". Reseñas de Física Moderna . 84 (2): 621–669. arXiv : 1110.3234 . Código Bib : 2012RvMP...84..621W. doi : 10.1103/RevModPhys.84.621. S2CID  119250535.
  39. ^ "Hardware: campos de fresas". Strawberryfields.ai . Consultado el 26 de marzo de 2021 .
  40. ^ "En la carrera hacia cientos de Qubits, los fotones pueden tener una" ventaja cuántica"". IEEE Spectrum: noticias sobre tecnología, ingeniería y ciencia . 5 de marzo de 2021 . Consultado el 26 de marzo de 2021 .
  41. ^ "pytket". GitHub . 22 de enero de 2022.
  42. ^ Bernhard Omer. "El lenguaje de programación QCL".
  43. ^ Hynek Mlnařík. "LanQ: un lenguaje de programación cuántico imperativo".
  44. ^ ab Liu, Shusen; Zhou, li; Guan, Ji; Él, Yang; Duan, Runyao; Ying, Mingsheng (9 de mayo de 2017). "Q | SI>: un lenguaje de programación cuántica". Scientia Sínica Informationis . 47 (10): 1300. arXiv : 1710.09500 . doi :10.1360/N112017-00095. S2CID  9163705.
  45. ^ Da Rosa, Evandro Chagas Ribeiro; De Santiago, Rafael (31 de enero de 2022). "Programación cuántica Ket". Revista ACM sobre tecnologías emergentes en sistemas informáticos . 18 (1): 1–25. doi :10.1145/3474224. ISSN  1550-4832.
  46. ^ "Programación cuántica Ket". quantumket.org . Consultado el 18 de mayo de 2023 .
  47. ^ A. Baltag y S. Smets, "LQP: la lógica dinámica de la información cuántica", Estructuras matemáticas en informática 16(3):491-525, 2006.
  48. ^ Baltag, Alexandru; Bergfeld, Jort; Kishida, Kohei; Saco, Josué; Smets, Sonja; Zhong, Shengyang (2014). "PLQP & Company: Lógicas decidibles para algoritmos cuánticos". Revista Internacional de Física Teórica . 53 (10): 3628–3647. Código Bib : 2014IJTP...53.3628B. doi :10.1007/s10773-013-1987-3. S2CID  254573992.
  49. ^ "Software para el lenguaje Q". 23 de noviembre de 2001. Archivado desde el original el 20 de junio de 2009 . Consultado el 20 de julio de 2017 .
  50. ^ "Introducción a Q# y al kit de desarrollo Quantum: Azure Quantum". aprender.microsoft.com . 30 de marzo de 2023.
  51. ^ "QCL: un lenguaje de programación para computadoras cuánticas". tuwien.ac.at . Consultado el 20 de julio de 2017 .
  52. ^ Scott Pakin, "A Quantum Macro Assembler", Actas de la vigésima conferencia anual de computación extrema de alto rendimiento IEEE 2016
  53. ^ Ying, Mingsheng (enero de 2012). "Lógica Floyd-hoare para programas cuánticos". Transmisión ACM. Programa. Lang. Sistema . 33 (6): 19:1–19:49. doi : 10.1145/2049706.2049708 . ISSN  0164-0925. S2CID  416960.
  54. ^ Ying, Mingsheng; Feng, Yuan (2010). "Un lenguaje de diagrama de flujo para programación cuántica". Transacciones IEEE sobre ingeniería de software . 37 (4): 466–485. doi :10.1109/TSE.2010.94. ISSN  0098-5589. S2CID  5879273.
  55. ^ Ying, Mingsheng; Yu, Nengkun; Feng, Yuan; Duan, Runyao (2013). "Verificación de programas cuánticos". Ciencia de la programación informática . 78 (9): 1679-1700. arXiv : 1106.4063 . doi :10.1016/j.scico.2013.03.016. S2CID  18913620.
  56. ^ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017), "Invariantes de programas cuánticos: Caracterizaciones y generación", Avisos ACM SIGPLAN , 52 : 818–832, doi : 10.1145/3093333.3009840, hdl : 10453/127333
  57. ^ Liu, Tao; Li, Yangjia; Wang, Shuling; Ying, Mingsheng; Zhan, Naijun (2016). "Un demostrador de teoremas para la lógica cuántica de Hoare y sus aplicaciones". arXiv : 1601.03835 [cs.LO].
  58. ^ Javadi-Abhari, Ali. "Andamio: lenguaje de programación cuántica". Universidad de Princeton-Departamento de Ciencias de la Computación . Universidad de Princeton . Consultado el 22 de septiembre de 2020 .
  59. ^ Litteken, Andrew (28 de mayo de 2020). "Un compilador de investigación cuántica basado en LLVM actualizado con mayor soporte para OpenQASM". Ciencia y tecnología cuánticas . 5 (3): 034013. Código bibliográfico : 2020QS&T....5c4013L. doi : 10.1088/2058-9565/ab8c2c . OSTI  1803951. S2CID  219101628.
  60. ^ "¿Qué es Silq?". silq.ethz.ch. ​Consultado el 21 de junio de 2020 .
  61. ^ Bichsel, Benjamín; Baader, Maximiliano; Gehr, Timón; Vechev, Martín (11 de junio de 2020). "Silq: un lenguaje cuántico de alto nivel con no computación segura y semántica intuitiva". Actas de la 41ª Conferencia ACM SIGPLAN sobre diseño e implementación de lenguajes de programación . Londres Reino Unido: ACM. págs. 286–300. doi :10.1145/3385412.3386007. ISBN 978-1-4503-7613-6. S2CID  219397029.
  62. ^ Peter Selinger, "Hacia un lenguaje de programación cuántico", Estructuras matemáticas en informática 14(4):527-586, 2004.
  63. ^ ab Jonathan Grattage: Investigación QML (sitio web)
  64. ^ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, JK Vizzotto, QML: un lenguaje de programación cuántico funcional Archivado el 10 de julio de 2006 en Wayback Machine (sitio web)
  65. ^ Andre van Tonder, "Un cálculo Lambda para computación cuántica", SIAM J. Comput., 33 (5), 1109-1135. (27 páginas), 2004. También disponible en arXiv:quant-ph/0307150
  66. ^ Peter Selinger y Benoît Valiron, "Un cálculo lambda para computación cuántica con control clásico", Estructuras matemáticas en informática 16(3):527-552, 2006.
  67. ^ Pablo Arrighi, Gilles Dowek, "Cálculo lambda algebraico lineal: orden superior, codificaciones y confluencia", 2006
  68. ^ "El simulador de operaciones cuánticas integrado en el lenguaje". github.io . Consultado el 20 de julio de 2017 .
  69. ^ Grupo de Computación y Arquitecturas Cuánticas (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
  70. ^ "EstaciónQ". microsoft.com . Consultado el 20 de julio de 2017 .
  71. ^ "Operaciones cuánticas integradas en el lenguaje: LIQUi |>". Microsoft . 2016.
  72. ^ "QML: un lenguaje de programación cuántica funcional". 26 de septiembre de 2007. Archivado desde el original el 26 de septiembre de 2007.
  73. ^ Jonathan Grattage, QML: un lenguaje de programación cuántico funcional (compilador) Archivado el 5 de marzo de 2016 en Wayback Machine , 2005-2008
  74. ^ Philip Maymin, "Ampliación del cálculo Lambda para expresar algoritmos aleatorios y cuantificados", 1996
  75. ^ André van Tonder. "Un cálculo lambda para computación cuántica (sitio web)". Archivado desde el original el 5 de marzo de 2016 . Consultado el 2 de octubre de 2007 .
  76. ^ Peter Selinger, Benoˆıt Valiron, "Cálculo Quantum Lambda"
  77. ^ "El lenguaje bromista".
  78. ^ Alejandro S. Verde; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron. "El lenguaje Quipper (sitio web)".
  79. ^ Alejandro S. Verde; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron (2013). "Una introducción a la programación cuántica en Quipper". Computación reversible . Apuntes de conferencias sobre informática. vol. 7948, págs. 110-124. arXiv : 1304.5485 . doi :10.1007/978-3-642-38986-3_10. ISBN 978-3-642-38985-6. S2CID  9135905.

Otras lecturas

enlaces externos