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 un resultado deseado de un experimento determinado. Los algoritmos de circuitos cuánticos se pueden implementar en circuitos integrados, ejecutar con instrumentación o escribir en un lenguaje de programación para su uso con una computadora cuántica o un procesador cuántico.

En los sistemas basados ​​en procesadores cuánticos, los lenguajes de programación cuántica ayudan a expresar algoritmos cuánticos mediante 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 de forma gratuita 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 por 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 se pueden ejecutar en procesadores cuánticos. A veces, estas instrucciones son específicas de una plataforma de hardware determinada, por ejemplo, trampas de iones o cúbits superconductores .

Mirlo

Blackbird [3] [4] es un conjunto de instrucciones cuánticas y una representación intermedia que utilizan 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 compilación y simulación cuántica. Fue introducido por el Laboratorio QCA en TUDelft .

OpenQASM

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

Quil

Quil es una arquitectura de conjunto de instrucciones para computación cuántica que introdujo por primera vez un modelo de memoria cuántica/clásica compartida. Fue introducida por Robert Smith, Michael Curtis y William Zeng en A Practical Quantum Instruction Set Architecture . [7] Muchos algoritmos cuánticos (incluidos los de teletransporte cuántico , corrección de errores cuánticos , simulación [8] [9] y 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 ejecutarse utilizando dispositivos cuánticos basados ​​en la nube y dispositivos cuánticos autoalojados.

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]

Clasico

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 un motor de síntesis que reconoce el hardware y que se puede implementar en una amplia gama de QPU. La plataforma incluye una gran biblioteca de algoritmos cuánticos.

Bosque

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 incluye algoritmos de nivel superior. [14] Forest se basa en el conjunto de instrucciones Quil .

Mente cuántica

MindQuantum es un marco de computación cuántica basado en MindSpore , centrado en la implementación de algoritmos NISQ . [15] [16] [17]

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 de modelo de Ising y optimización binaria cuadrática sin restricciones (QUBO). Los resultados se pueden obtener enviándolos a una computadora cuántica en línea en Leap, el entorno de aplicación cuántica en tiempo real de D-Wave, máquinas propiedad del cliente o muestreadores clásicos. [ cita requerida ]

Un código de muestra que utiliza projectq con Python

Penny Lane

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

Perceval

Proyecto de código abierto creado por Quandela  [fr] para diseñar circuitos fotónicos cuánticos y desarrollar algoritmos cuánticos, basado en Python . Las simulaciones se ejecutan en la propia computadora del usuario o en la nube . Perceval también se utiliza para conectarse al procesador fotónico cuántico basado en la nube de Quandela . [24] [25]

ProyectoQ

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

Qibo

Una API de pila 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. [27] [28] Este proyecto tiene como objetivo proporcionar un marco de control de hardware cuántico independiente de la plataforma con controladores para múltiples instrumentos [29] y herramientas para calibración, caracterización y validación cuánticas. [30] Este marco se centra en dispositivos cuánticos autoalojados al simplificar el desarrollo de software requerido en los laboratorios.

Kit de qi

Un proyecto de código abierto desarrollado por IBM . [31] 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 dispositivos cuánticos prototipo proporcionados por IBM. Además de la capacidad de crear programas utilizando operaciones cuánticas básicas, hay herramientas de nivel superior para algoritmos y evaluación comparativa disponibles dentro de paquetes especializados. [32] Qiskit se basa en el estándar OpenQASM para representar circuitos cuánticos. También admite el control de nivel de pulso de sistemas cuánticos a través del estándar QiskitPulse. [33]

Qrisp

Qrisp [34] es un proyecto de código abierto coordinado por la Fundación Eclipse [35] y desarrollado en programación Python por Fraunhofer FOKUS [36]. Qrisp es un lenguaje de programación de alto nivel para crear y compilar algoritmos cuánticos. Su modelo de programación estructurada permite un desarrollo y mantenimiento escalables. La sintaxis expresiva se basa en variables en lugar de qubits, con QuantumVariable como clase central y funciones en lugar de puertas. Herramientas adicionales, como un simulador de alto rendimiento y un descomputado 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 [37] como parte de .NET Framework . Los programas cuánticos se pueden escribir y ejecutar dentro de 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 [38] y en computadoras cuánticas de Quantinuum [22] , IonQ y Pasqal [12] .

Campos de fresas

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

t|ket>

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

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 funcional .

Lenguas imperativas

Los representantes más destacados de los lenguajes imperativos son QCL, [45] LanQ [46] y Q|SI>. [47]

Cebo

Ket [48] es un lenguaje integrado de código abierto diseñado para facilitar la programación cuántica, aprovechando la sintaxis y la simplicidad familiares de Python. Funciona como un componente integral de la plataforma de programación cuántica Ket [49] , integrándose sin problemas con una biblioteca de ejecución de Rust y un simulador cuántico. El proyecto, mantenido por Quantuloop, enfatiza la accesibilidad y versatilidad para investigadores y desarrolladores. El siguiente ejemplo demuestra la implementación de un estado de Bell utilizando 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 )  # Entrelaza los dos qubits en el estado de Bellm_a  =  medida ( a )  # Mide el qubit `a`, colapsando también el qubit `b`m_b  =  medida ( b )  # Mide el 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 varias formas de entrelazamiento. La lógica se ha utilizado para especificar y verificar la corrección de varios protocolos en computación cuántica. [50] [51]

Lenguaje Q

El lenguaje Q es el segundo lenguaje de programación cuántica imperativo implementado. [52] El lenguaje Q 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 clases de 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 qubit con valor inicial 0    

El proceso de cálculo se ejecuta mediante un simulador proporcionado. Los entornos ruidosos se pueden simular mediante parámetros del simulador.

Pregunta#

Un lenguaje desarrollado por Microsoft para ser utilizado con el Quantum Development Kit. [53]

LCC

El lenguaje de computación cuántica (QCL) es uno de los primeros lenguajes de programación cuántica implementados . [54] 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.

GCL q

El lenguaje de comandos protegido cuántico (qGCL) fue definido por P. Zuliani en su tesis doctoral. Está basado en el lenguaje de comandos protegido 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 D-Wave. [55]

Modificación Q

El lenguaje de modelado cuántico (Qmod) es un lenguaje de alto nivel que abstrae la operación de cúbits a nivel de compuerta, lo que proporciona 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 utilizar 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 soporta la programación cuántica en una extensión cuántica del lenguaje while. [47] [56] Esta plataforma incluye un compilador del lenguaje while cuántico [57] 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 [58] y verificación de programas cuánticos. [59] [60]

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 . Fue introducido y, además, estaba estrechamente relacionado con un modelo de máquina cuántica llamada Máquina de Acceso Aleatorio Cuántico (QRAM).

Andamio

Scaffold es un lenguaje similar a C que 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. [61] [62]

Silq

Silq es un lenguaje de programación de alto nivel para computación cuántica con un fuerte sistema de tipos estáticos, desarrollado en la ETH de Zúrich . [63] [64]

Lenguajes funcionales

Se están realizando esfuerzos para desarrollar lenguajes de programación funcional para la computación cuántica . Los lenguajes de programación funcional son adecuados para razonar sobre programas. Algunos ejemplos incluyen el QPL de Selinger, [65] y el lenguaje similar a Haskell QML de Altenkirch y Grattage. [66] [67] Los lenguajes de programación cuántica de orden superior, basados ​​en el cálculo lambda , han sido propuestos por van Tonder, [68] Selinger y Valiron [69] y por Arrighi y Dowek. [70]

LÍQUIDO|>

LIQUi|> (pronunciado liquid ) es una extensión de simulación cuántica del lenguaje de programación F# . [71] Actualmente está siendo desarrollado por el Grupo de Arquitecturas y Computación Cuántica (QuArC) [72] , 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. [73]

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


QFC y QPL

QFC y QPL son dos lenguajes de programación cuántica estrechamente relacionados definidos por Peter Selinger. Se diferencian solo en su sintaxis: QFC utiliza una sintaxis de diagrama de flujo, mientras que QPL utiliza una sintaxis textual. Estos lenguajes tienen un flujo de control clásico pero pueden operar con datos cuánticos o clásicos. Selinger proporciona 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. [75] [66] A diferencia del QPL de Selinger, este lenguaje toma la duplicación, en lugar del descarte, de la información cuántica como una operación primitiva. La duplicación en este contexto se entiende como la operación que se asigna a , y no debe confundirse con la operación imposible de clonación ; los autores afirman que es similar a cómo se modela el intercambio en los lenguajes clásicos. 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 presenta una semántica operacional para QML en términos de circuitos cuánticos , mientras que una semántica denotacional se presenta en términos de superoperadores , y se demuestra que concuerdan. Tanto la semántica operacional como la denotacional se han implementado (clásicamente) en Haskell. [76]

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 extender 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. [77] 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 de Turing cuántica o el modelo de circuito cuántico ). Por lo tanto, el cálculo lambda-q de Maymin probablemente no sea implementable en un dispositivo físico [ cita requerida ] .

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

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 . [79]

Quipper

Quipper se publicó en 2013. [80] [81] Se implementa como un lenguaje integrado, utilizando Haskell como lenguaje anfitrión. [82] 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 . Morgan & Claypool Publishers. 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, Christian; Amy, Matthew; Bergholm, Ville; Quesada, Nicolás; Izaac, Josh; Killoran, Nathan (11 de marzo de 2019). "Strawberry Fields: una plataforma de software para computación cuántica fotónica". Quantum . 3 : 129. arXiv : 1804.03159 . Bibcode :2019Quant...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 [quant-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 conjuntos de instrucciones cuánticas". arXiv : 1608.03355 [quant-ph].
  8. ^ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán (4 de febrero de 2016). "La teoría de algoritmos variacionales híbridos cuántico-clásicos". New Journal of Physics . 18 (2): 023023. arXiv : 1509.04279 . Bibcode :2016NJPh...18b3023M. doi :10.1088/1367-2630/18/2/023023. ISSN  1367-2630. S2CID  92988541.
  9. ^ Rubin, Nicholas 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 [quant-ph].
  10. ^ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). "Un algoritmo de optimización aproximada cuántica". arXiv : 1411.4028 [quant-ph].
  11. ^ Häner, Thomas; Steiger, Damian S.; Svore, Krysta ; Troyer, Matthias (2018). "Una metodología de software para compilar programas cuánticos". Ciencia y tecnología cuántica . 3 (2): 020501. arXiv : 1604.01401 . Código Bibliográfico :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 cuántica de MindSpore". www.mindspore.cn/mindquantum .
  16. ^ Xu, Xusheng; et al. (2024). "MindSpore Quantum: un marco de computación cuántica fácil de usar, de alto rendimiento y compatible con IA". arXiv : 2406.17248 [quant-ph].
  17. ^ "mente cuántica". github.com .
  18. ^ "Documentación de PennyLane — Documentación de PennyLane 0.14.1". pennylane.readthedocs.io . Consultado el 26 de marzo de 2021 .
  19. ^ "AWS se une a PennyLane, un marco de código abierto que combina el aprendizaje automático con la computación cuántica". SiliconANGLE . 17 de febrero de 2021 . Consultado el 26 de marzo de 2021 .
  20. ^ "Proyecto de código abierto de la semana de SD Times: PennyLane". SD Times . 26 de febrero de 2021 . Consultado el 26 de marzo de 2021 .
  21. ^ Salamone, Salvatore (13 de diciembre de 2020). "Resumen de noticias de análisis en tiempo real para la semana que finaliza el 12 de diciembre". RTInsights . Consultado el 26 de marzo de 2021 .
  22. ^ ab "Acelerando la computación cuántica". www.quantinuum.com .
  23. ^ "Plugins y ecosistema — PennyLane". pennylane.ai . Consultado el 26 de marzo de 2021 .
  24. ^ "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.
  25. ^ 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. Número de identificación del sujeto  247922568.
  26. ^ "Inicio".
  27. ^ 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.
  28. ^ Efthymiou, Stavros; Lazzarin, Marco; Pasquale, Andrea; Carrazza, Stefano (22 de septiembre de 2022). "Simulación cuántica con compilación justo a tiempo". Quantum . 6 : 814. arXiv : 2203.08826 . Bibcode :2022Quant...6..814E. doi : 10.22331/q-2022-09-22-814 . S2CID  247518955.
  29. ^ "Qibolab". 2 de noviembre de 2022 – vía GitHub.
  30. ^ "Qibocal". 1 de noviembre de 2022 – vía GitHub.
  31. ^ "qiskit.org". qiskit.org .
  32. ^ "Descripción general de Qiskit" . Consultado el 10 de febrero de 2021 .
  33. ^ McKay, David C.; Alexander, Thomas; Bello, Luciano; Biercuk, Michael J.; Bishop, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gomez, Juan; Hush, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nation, Paul; Paulovicks, Brent; Winston, Erick; Wood, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). "Especificaciones del backend de Qiskit para experimentos OpenQASM y OpenPulse". arXiv : 1809.03452 [quant-ph].
  34. ^ "Sitio web oficial de Qrisp".
  35. ^ "Fundación Eclipse (sitio web)".
  36. ^ "Fraunhofer FOKUS (sitio web)".
  37. ^ "Documentación de Azure Quantum, referencia de API de QDK y Q#: Azure Quantum". learn.microsoft.com .
  38. ^ "¿Qué es Azure Quantum? - Azure Quantum". learn.microsoft.com . 11 de enero de 2023.
  39. ^ "Strawberry Fields — Documentación de Strawberry Fields 0.8.0". strawberryfields.readthedocs.io . Consultado el 25 de septiembre de 2018 .
  40. ^ Killoran, Nathan; Izaac, Josh; Quesada, Nicolás; Bergholm, Ville; Amy, Matthew; Weedbrook, Christian (2019). "Strawberry Fields: una plataforma de software para computación cuántica fotónica". Quantum . 3 : 129. arXiv : 1804.03159 . Bibcode :2019Quant...3..129K. doi :10.22331/q-2019-03-11-129. S2CID  54763305.
  41. ^ Weedbrook, Christian; Pirandola, Stefano; García-Patrón, Raúl; Cerf, Nicolas 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 Bibliográfico :2012RvMP...84..621W. doi :10.1103/RevModPhys.84.621. S2CID  119250535.
  42. ^ "Hardware — Strawberry Fields". strawberryfields.ai . Consultado el 26 de marzo de 2021 .
  43. ^ "En la carrera por cientos de cúbits, 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 .
  44. ^ "pytket". GitHub . 22 de enero de 2022.
  45. ^ Bernhard Omer. "El lenguaje de programación QCL".
  46. ^ Hynek Mlnařík. "LanQ: un lenguaje de programación cuántico imperativo".
  47. ^ 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.
  48. ^ 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.
  49. ^ "Programación cuántica Ket". quantumket.org . Consultado el 18 de mayo de 2023 .
  50. ^ A. Baltag y S. Smets, "LQP: La lógica dinámica de la información cuántica", Estructuras matemáticas en ciencias de la computación 16(3):491-525, 2006.
  51. ^ Baltag, Alexandru; Bergfeld, Jort; Kishida, Kohei; Sack, Joshua; 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 Bibliográfico :2014IJTP...53.3628B. doi :10.1007/s10773-013-1987-3. S2CID  254573992.
  52. ^ "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 .
  53. ^ "Introducción a Q# y Quantum Development Kit: Azure Quantum". learn.microsoft.com . 30 de marzo de 2023.
  54. ^ "QCL - Un lenguaje de programación para computadoras cuánticas". tuwien.ac.at . Consultado el 20 de julio de 2017 .
  55. ^ Scott Pakin, "Un ensamblador macro cuántico", Actas de la 20.ª Conferencia anual sobre computación extrema de alto rendimiento del IEEE de 2016
  56. ^ Ying, Mingsheng (enero de 2012). "Lógica de Floyd-Hoare para programas cuánticos". ACM Trans. Program. Lang. Syst . 33 (6): 19:1–19:49. doi : 10.1145/2049706.2049708 . ISSN  0164-0925. S2CID  416960.
  57. ^ Ying, Mingsheng; Feng, Yuan (2010). "Un lenguaje de diagrama de flujo para programación cuántica". IEEE Transactions on Software Engineering . 37 (4): 466–485. doi :10.1109/TSE.2010.94. ISSN  0098-5589. S2CID  5879273.
  58. ^ 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.
  59. ^ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017), "Invariantes de programas cuánticos: caracterizaciones y generación", ACM SIGPLAN Notices , 52 : 818–832, doi : 10.1145/3093333.3009840, hdl : 10453/127333
  60. ^ 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].
  61. ^ Javadi-Abhari, Ali. "Scaffold: 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 .
  62. ^ Litteken, Andrew (28 de mayo de 2020). "Un compilador de investigación cuántica basado en LLVM actualizado con mayor compatibilidad con OpenQASM". Ciencia y tecnología cuánticas . 5 (3): 034013. Bibcode :2020QS&T....5c4013L. doi : 10.1088/2058-9565/ab8c2c . OSTI  1803951. S2CID  219101628.
  63. ^ "¿Qué es Silq?". silq.ethz.ch . Consultado el 21 de junio de 2020 .
  64. ^ Bichsel, Benjamin; Baader, Maximilian; Gehr, Timon; Vechev, Martin (11 de junio de 2020). "Silq: un lenguaje cuántico de alto nivel con descomputació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. Número de identificación del sujeto  219397029.
  65. ^ Peter Selinger, "Hacia un lenguaje de programación cuántica", Estructuras matemáticas en ciencias de la computación 14(4):527-586, 2004.
  66. ^ de Jonathan Grattage: Investigación QML (sitio web)
  67. ^ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, JK Vizzotto, QML: Un lenguaje de programación cuántica funcional Archivado el 10 de julio de 2006 en Wayback Machine (sitio web)
  68. ^ Andre van Tonder, "A Lambda Calculus for Quantum Computation", SIAM J. Comput., 33(5), 1109–1135. (27 páginas), 2004. También disponible en arXiv:quant-ph/0307150
  69. ^ Peter Selinger y Benoît Valiron, "Un cálculo lambda para computación cuántica con control clásico", Estructuras matemáticas en ciencias de la computación 16(3):527-552, 2006.
  70. ^ Pablo Arrighi, Gilles Dowek, "Cálculo lambda lineal-algebraico: orden superior, codificaciones y confluencia", 2006
  71. ^ "El simulador de operaciones cuánticas integrado en el lenguaje". github.io . Consultado el 20 de julio de 2017 .
  72. ^ Grupo de Arquitecturas Cuánticas y Computación (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
  73. ^ "StationQ". microsoft.com . Consultado el 20 de julio de 2017 .
  74. ^ "Operaciones cuánticas integradas en el lenguaje: LIQUi|>". Microsoft . 2016.
  75. ^ "QML: Un lenguaje de programación cuántica funcional". 26 de septiembre de 2007. Archivado desde el original el 26 de septiembre de 2007.
  76. ^ Jonathan Grattage, QML: Un lenguaje de programación cuántica funcional (compilador) Archivado el 5 de marzo de 2016 en Wayback Machine , 2005–2008
  77. ^ Philip Maymin, "Extensión del cálculo lambda para expresar algoritmos aleatorios y cuantizados", 1996
  78. ^ André van Tonder. «Un cálculo lambda para la computación cuántica (sitio web)». Archivado desde el original el 5 de marzo de 2016. Consultado el 2 de octubre de 2007 .
  79. ^ Peter Selinger, Benoît Valiron, "Cálculo lambda cuántico"
  80. ^ "El lenguaje Quipper".
  81. ^ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron. "El lenguaje de Quipper (sitio web)".
  82. ^ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron (2013). "Introducción a la programación cuántica en Quipper". Computación reversible . Apuntes de clase en 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  .

Lectura adicional

Enlaces externos