Articulo de referencia

Programación cuántica

La programación cuántica se refiere al proceso de diseñar e implementar algoritmos que operan en sistemas cuánticos , generalmente mediante circuitos cuánticos compuestos por pu...

La programación cuántica se refiere al proceso de diseñar e implementar algoritmos que operan en sistemas cuánticos , generalmente mediante circuitos cuánticos compuestos por puertas cuánticas, mediciones y lógica de control clásica. Estos circuitos se desarrollan para manipular estados cuánticos con el fin de realizar tareas computacionales específicas o lograr resultados experimentales. Los programas cuánticos pueden ejecutarse en procesadores cuánticos, simularse en hardware clásico o implementarse mediante instrumentación de laboratorio con fines de investigación.

Al trabajar con sistemas basados ​​en procesadores cuánticos, los lenguajes de programación cuántica proporcionan abstracciones de alto nivel para expresar algoritmos cuánticos de manera eficiente. Estos lenguajes suelen integrarse con entornos de programación clásicos y admiten flujos de trabajo híbridos cuántico-clásicos. El desarrollo de software cuántico ha estado fuertemente influenciado por la comunidad de código abierto , con numerosos conjuntos de herramientas y marcos de trabajo —como Qrisp , Qiskit , Cirq , PennyLane y qBraid SDK— disponibles bajo licencias abiertas. [ 1 ] [ 2 ]

La programación cuántica también puede utilizarse para modelar o controlar sistemas experimentales mediante instrumentación cuántica y plataformas basadas en sensores. Si bien algunas arquitecturas de computación cuántica, como la computación cuántica óptica lineal que utiliza el protocolo KLM , requieren hardware especializado, otras emplean procesadores cuánticos basados ​​en puertas lógicas accesibles mediante interfaces de software. En ambos casos, la programación cuántica sirve de puente entre los algoritmos teóricos y su implementación física.

Conjuntos de instrucciones cuánticas

Los conjuntos de instrucciones cuánticas se utilizan para convertir algoritmos de alto nivel 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 cúbits 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 variables continuas que pueden ejecutarse en hardware cuántico fotónico.

cQASM

cQASM, [ 5 ] también conocido como QASM común, es un lenguaje de ensamblaje 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 QCA Lab en TUDelft .

OpenQASM

OpenQASM [ 6 ] es la representación intermedia introducida por IBM para su uso con Qiskit y la plataforma cuántica de IBM.

QIR

La Representación Intermedia Cuántica (QIR) es una representación intermedia independiente del hardware desarrollada por Microsoft como parte del Kit de Desarrollo Cuántico . Se basa en la infraestructura del compilador LLVM y está diseñada para representar programas cuánticos de forma que permita la optimización y la ejecución en diversos sistemas de hardware cuántico. [ 7 ] QIR sirve como objetivo común para los compiladores cuánticos, lo que permite la interoperabilidad entre diferentes lenguajes de programación, como Q#, y capas de control de hardware de bajo nivel. Su mantenimiento corre a cargo de la Alianza QIR , un grupo colaborativo de socios académicos e industriales.

Pluma

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 presentada por Robert Smith, Michael Curtis y William Zeng en A Practical Quantum Instruction Set Architecture . [ 8 ] Muchos algoritmos cuánticos (incluidos la teletransportación cuántica , la corrección de errores cuánticos , la simulación, [ 9 ] [ 10 ] y los algoritmos de optimización [ 11 ] ) requieren una arquitectura de memoria compartida.

Kits de desarrollo de software cuántico

Los kits de desarrollo de software cuántico proporcionan conjuntos de herramientas para crear y manipular programas cuánticos. [ 12 ] 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.

Kits de desarrollo de software (SDK) con acceso a procesadores cuánticos

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

Cirq

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 , [ 13 ] Rigetti y Alpine Quantum Technologies . [ 14 ]

Clásico

Classiq, un entorno de desarrollo integrado (IDE) cuántico basado en la nube, utiliza Qmod , un lenguaje cuántico de alto nivel , para generar circuitos cuánticos escalables y eficientes mediante un motor de síntesis compatible con hardware, que puede implementarse en una amplia gama de unidades de procesamiento cuántico (QPU). La plataforma incluye una extensa 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 mediante simuladores o prototipos de dispositivos cuánticos proporcionados por Rigetti. Además de la capacidad de crear programas con operaciones cuánticas básicas, el paquete Grove ofrece algoritmos de nivel superior. [ 15 ] Forest se basa en el conjunto de instrucciones Quil .

MindQuantum

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

Océano

Conjunto de herramientas de código abierto desarrollado por D-Wave. Escrito principalmente en Python, permite a los usuarios formular problemas en formatos de modelo de Ising y optimización binaria cuadrática sin restricciones (QUBO). Los resultados se pueden obtener mediante el procesamiento en una computadora cuántica en línea a través de Leap, el entorno de aplicaciones cuánticas en tiempo real de D-Wave, máquinas propias del cliente o muestreadores clásicos.

PennyLane

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

Percepción

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

Código de ejemplo que utiliza projectq con Python

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. [ 27 ] Los resultados se obtienen mediante un simulador o enviando tareas a dispositivos cuánticos de IBM.

SDK de qBraid

El SDK de qBraid es un marco de ejecución cuántica de código abierto e independiente de la plataforma, desarrollado por qBraid. Permite a los usuarios escribir programas cuánticos una sola vez y ejecutarlos en diversos hardware y simuladores cuánticos sin modificar el código. El SDK es compatible con múltiples bibliotecas de programación cuántica, como Qiskit, Cirq, PennyLane, PyQuil y Braket, entre otras. Incluye un transpilador basado en grafos que facilita la conversión entre diferentes tipos de programas cuánticos, permitiendo una interoperabilidad perfecta entre marcos de trabajo. El SDK también proporciona herramientas para el envío de trabajos, la recuperación de resultados y la visualización de circuitos. Está integrado con qBraid Lab, ofreciendo acceso a más de 20 dispositivos y simuladores cuánticos de proveedores como IonQ, Rigetti, QuEra e IQM. [ 28 ] [ 29 ]

Qibo

Qibo es una API de pila completa de código abierto para simulación cuántica, control de hardware cuántico y calibración 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. [ 30 ] [ 31 ] Este proyecto tiene como objetivo proporcionar un marco de control de hardware cuántico independiente de la plataforma con controladores para múltiples instrumentos [ 32 ] y herramientas para calibración, caracterización y validación cuántica. [ 33 ] Este marco se centra en dispositivos cuánticos autoalojados al simplificar el desarrollo de software requerido en los laboratorios.

Kit de habilidades

Un proyecto de código abierto desarrollado por IBM . [ 34 ] Los circuitos cuánticos se crean y manipulan usando Python. Los resultados se obtienen usando simuladores que se ejecutan en el dispositivo del usuario, simuladores proporcionados por IBM o prototipos de dispositivos cuánticos proporcionados por IBM. Además de la capacidad de crear programas usando operaciones cuánticas básicas, hay herramientas de nivel superior para algoritmos y evaluación comparativa disponibles dentro de paquetes especializados. [ 35 ] 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. [ 36 ]

Qrisp

Qrisp [ 37 ] es un proyecto de código abierto coordinado por la Fundación Eclipse [ 38 ] y desarrollado en Python por Fraunhofer FOKUS [ 39 ]. 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 cúbits, con QuantumVariable como clase principal, y funciones en lugar de compuertas. Herramientas adicionales, como un simulador de alto rendimiento y la descomputación automática, complementan el extenso marco. Además, es independiente de la plataforma, ya que ofrece compilación alternativa de funciones elementales hasta el nivel de circuito, basada en conjuntos de compuertas específicos del dispositivo.

Kit de desarrollo cuántico

Un proyecto desarrollado por Microsoft [ 40 ] como parte del .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 el QDK se pueden ejecutar en Azure Quantum de Microsoft [ 41 ] y en computadoras cuánticas de Quantinuum [ 23 ] , IonQ y Pasqal [ 13 ] .

Campos de fresas

Una biblioteca de Python de código abierto desarrollada por Xanadu Quantum Technologies para el diseño, simulación y optimización de circuitos ópticos cuánticos de variable continua (CV) . [ 42 ] [ 43 ] Se proporcionan tres simuladores: uno en la base de Fock , uno que utiliza la formulación gaussiana de la óptica cuántica, [ 44 ] y uno 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. [ 45 ] [ 46 ]

t|ket>

Un entorno de programación cuántica y un compilador optimizador desarrollado por Quantinuum que apunta a simuladores y varios backends de hardware cuántico de iones atrapados, lanzado en diciembre de 2018. [ 47 ]

Marco cuántico de Wolfram

Un paquete adicional de Wolfram Language que proporciona una representación simbólica de alto nivel para objetos cuánticos como bases, estados, operadores, canales, mediciones y circuitos, integrado con Mathematica . [ 48 ] El marco incluye herramientas para simulación y análisis, como evolución temporal, simulación de mediciones, monótonos de entrelazamiento, traza parcial/transposición, transformadas discretas de Wigner, métodos estabilizadores y utilidades de redes tensoriales, así como una biblioteca de construcciones con nombre (por ejemplo, estados de Bell/GHZ, operadores de Pauli , Fourier, Grover, etc.). [ 48 ] Ofrece visualización integrada (por ejemplo, diagramas de circuitos y gráficos de esfera de Bloch) e interoperabilidad con plataformas externas, incluyendo la conversión a formatos Qiskit y Amazon Braket y la capacidad de enviar consultas a unidades de procesamiento cuántico (QPU) a través de conexiones de servicio.

Lenguajes de programación cuántica

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

Lenguas imperativas

Los representantes más destacados de los lenguajes imperativos son QCL, [ 49 ] LanQ [ 50 ] y Q|SI>. [ 51 ]

Ket

Ket [ 52 ] es un lenguaje embebido de código abierto diseñado para facilitar la programación cuántica, aprovechando la sintaxis familiar y la simplicidad de Python. Sirve como componente integral de la Plataforma de Programación Cuántica Ket [ 53 ] , integrándose a la perfección con una biblioteca de tiempo de ejecución de Rust y un simulador cuántico. Mantenido por Quantuloop, el proyecto hace hincapié en la accesibilidad y la versatilidad para investigadores y desarrolladores. El siguiente ejemplo demuestra la implementación de un estado de Bell usando Ket:

de ket importar *a , b = quant ( 2 ) # Asignar dos bits cuánticosH ( a ) # Coloca el cúbit `a` en una superposicióncnot ( a , b ) # Entrelaza los dos cúbits en el estado de Bellm_a = measure ( a ) # Medir el cúbit `a`, colapsando también el cúbit `b`.m_b = measure ( b ) # Medir el cúbit `b`# Afirmar que la medida de ambos cúbits siempre será igual.afirmar 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 las mediciones cuánticas y las evoluciones unitarias de estados multipartitos, y proporciona caracterizaciones lógicas de diversas formas de entrelazamiento. Esta lógica se ha utilizado para especificar y verificar la corrección de varios protocolos en computación cuántica. [ 54 ] [ 55 ]

Lenguaje Q

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

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

P#

Un lenguaje desarrollado por Microsoft para ser utilizado con el Kit de Desarrollo Cuántico . [ 57 ]

QCL

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

qGCL

El lenguaje de comandos cuánticos protegidos (qGCL) fue definido por P. Zuliani en su tesis doctoral. Se basa en el lenguaje de comandos protegidos creado por Edsger Dijkstra .

Se puede describir como un lenguaje de especificación de programas cuánticos.

QMASM

El Ensamblador Macro Cuántico (QMASM) es un lenguaje de bajo nivel específico para recocedores cuánticos como el D-Wave. [ 59 ]

Qmod

El lenguaje de modelado cuántico (Qmod) es un lenguaje de alto nivel que abstrae las operaciones de cúbits a nivel de compuertas, proporcionando un enfoque funcional para la implementación de algoritmos cuánticos en registros cuánticos. El lenguaje forma parte de la plataforma Classiq y puede utilizarse directamente con su sintaxis nativa, mediante un SDK de Python o con un editor visual. Todos los métodos aprovechan la amplia biblioteca de algoritmos y la eficiente optimización de circuitos.

Q|SI>

Q|SI> es una plataforma integrada en el lenguaje .Net que admite programación cuántica en una extensión cuántica del lenguaje while. [ 51 ] [ 60 ] Esta plataforma incluye un compilador del lenguaje while cuántico [ 61 ] 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, [ 62 ] y verificación de programas cuánticos. [ 63 ] [ 64 ]

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, se vinculó estrechamente con un modelo de máquina cuántica llamado Máquina de Acceso Aleatorio Cuántico (QRAM).

Andamio

Scaffold es un lenguaje similar a C que se compila a 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. [ 65 ] [ 66 ]

Silq

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

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 muy adecuados para razonar sobre programas. Algunos ejemplos son QPL de Selinger, [ 69 ] y el lenguaje tipo Haskell QML de Altenkirch y Grattage. [ 70 ] [ 71 ] Van Tonder, [ 72 ] Selinger y Valiron [ 73 ] y Arrighi y Dowek han propuesto lenguajes de programación cuántica de orden superior, basados ​​en el cálculo lambda . [ 74 ]

LÍQUI|>

LIQUi|> (pronunciado liquid ) es una extensión de simulación cuántica para el lenguaje de programación F# . [ 75 ] Actualmente está siendo desarrollada por el Grupo de Arquitecturas y Computación Cuántica (QuArC) [ 76 ] 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. [ 77 ]

Incluye un lenguaje de programación, algoritmos de optimización y planificación, y simuladores cuánticos. LIQUi|> puede utilizarse 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. [ 78 ]

QFC y QPL

QFC y QPL son dos lenguajes de programación cuántica estrechamente relacionados, definidos por Peter Selinger. Se diferencian únicamente en su sintaxis: QFC utiliza una sintaxis de diagrama de flujo, mientras que QPL utiliza una sintaxis textual. Estos lenguajes poseen 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 , creado por Altenkirch y Grattage. [ 79 ] [ 70 ] A diferencia del QPL de Selinger, este lenguaje toma la duplicación, en lugar del descarte, de información cuántica como una operación primitiva. La duplicación en este contexto se entiende como la operación que mapea|ϕ{\displaystyle |\phi \rangle }a|ϕ|ϕ{\displaystyle |\phi \rangle \otimes |\phi \rangle }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 tanto clásicos como 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 se presenta una semántica denotacional en términos de superoperadores , y se demuestra que coinciden. Tanto la semántica operacional como la denotacional se han implementado (clásicamente) en Haskell. [ 80 ]

Cálculos cuánticos lambda

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 objetivo 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. [ 81 ] Su cálculo lambda-q es lo suficientemente potente como para expresar cualquier computación cuántica. Sin embargo, este lenguaje puede resolver eficientemente problemas NP-completos y, por lo tanto, parece ser estrictamente más robusto que los modelos de computación cuántica estándar (como la máquina de Turing cuántica o el modelo de circuito cuántico ). Por consiguiente, es probable que el cálculo lambda-q de Maymin no sea implementable en un dispositivo físico.

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

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

Quipper

Quipper se publicó en 2013. [ 84 ] [ 85 ] Está implementado como un lenguaje embebido, utilizando Haskell como lenguaje anfitrión. [ 86 ] 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 Quipperspos :: Bool -> Circ Qubit spos b = do q <- qinit b r <- hadamard q return r

Véase también

Referencias

  1. Häner, Thomas; Steiger, Damian S.; Svore, Krysta ; Troyer, Matthias (2018). "Una metodología de software para compilar programas cuánticos". Quantum Science and Technology . 3 (2): 020501. arXiv : 1604.01401 . Bibcode : 2018QS & T....3b0501H . doi : 10.1088/2058-9565/aaa5cc . ISSN 2058-9565 . 
  2. "Repositorio de Qiskit en GitHub" . GitHub .
  3. "Lenguaje de ensamblaje 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 común de ensamblaje cuántico". 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. "Representación Intermedia Cuántica (QIR)" . Alianza QIR . Consultado el 2 de junio de 2025 .
  8. Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "Una arquitectura práctica de conjunto de instrucciones cuánticas". arXiv : 1608.03355 [ quant-ph ].
  9. McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán (4 de febrero de 2016). "La teoría de los algoritmos híbridos cuántico-clásicos variacionales". 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 .  
  10. 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 la teoría de incrustación de la matriz de densidad". arXiv : 1610.06910 [ quant-ph ].
  11. Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). "Un algoritmo de optimización aproximada cuántica". arXiv : 1411.4028 [ quant-ph ].
  12. Häner, Thomas; Steiger, Damian S.; Svore, Krysta ; Troyer, Matthias (2018). "Una metodología de software para compilar programas cuánticos". Quantum Science and Technology . 3 (2): 020501. arXiv : 1604.01401 . Bibcode : 2018QS & T....3b0501H . doi : 10.1088/2058-9565/aaa5cc . ISSN 2058-9565 . S2CID 1922315 .  
  13. 1 2 "PASQAL" . PASQAL . Archivado del original el 15 de julio de 2022. Recuperado el 6 de julio de 2022 .
  14. 1 2 "Inicio" . AQT | ALPINE QUANTUM TECHNOLOGIES .
  15. "¡Bienvenido a la documentación de Grove! – Documentación de Grove 1.7.0" . grove-docs.readthedocs.io .
  16. "Documentación de MindSpore Quantum" . www.mindspore.cn/mindquantum .
  17. 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 ]. 
  18. «mentecuántica» . github.com .
  19. "Documentación de PennyLane 0.14.1" . pennylane.readthedocs.io . Consultado el 26 de marzo de 2021 .
  20. "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 .
  21. "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 .
  22. Salamone, Salvatore (13 de diciembre de 2020). "Resumen de noticias de análisis en tiempo real para la semana que finalizó el 12 de diciembre" . RTInsights . Consultado el 26 de marzo de 2021 .
  23. 1 2 "Acelerando la computación cuántica" . www.quantinuum.com .
  24. "Plugins y ecosistema" . pennylane.ai . Archivado del original el 26 de septiembre de 2021. Consultado el 26 de marzo de 2021 .
  25. «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.
  26. ^ 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 . 7931. arXiv : 2204.00602 .Código Bib : 2023Quant...7..931H . doi : 10.22331/q-2023-02-21-931 . S2CID 247922568. Archivado del original el 27 de marzo de 2023. Recuperado el 27 de marzo de 2023 . 
  27. "Inicio" .
  28. "Descripción general del SDK de qBraid" . docs.qbraid.com .
  29. "qBraid anuncia la integración del SDK de qBraid con Amazon Braket en qBraid Lab" . qbraid.com .
  30. ^ 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 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 y T....7a5018E . doi : 10.1088/2058-9565/ac39f5 . hdl : 2434/887963 . ISSN 2058-9565 . S2CID 221507478 .  
  31. 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. Archivado del original el 20 de octubre de 2022. Recuperado el 20 de octubre de 2022 . 
  32. "Qibolab" . 2 de noviembre de 2022 vía GitHub.
  33. "Qibocal" . 1 de noviembre de 2022 vía GitHub.
  34. "qiskit.org" . qiskit.org .
  35. "Descripción general de Qiskit" . Consultado el 10 de febrero de 2021 .
  36. 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 ].
  37. "Sitio web oficial de Qrisp" .
  38. "Fundación Eclipse (sitio web)" .
  39. «Fraunhofer FOKUS (sitio web)» .
  40. "Documentación de Azure Quantum, referencia de la API de QDK y Q# - Azure Quantum" . learn.microsoft.com .
  41. "¿Qué es Azure Quantum? - Azure Quantum" . learn.microsoft.com . 11 de enero de 2023.
  42. "Strawberry Fields – Documentación de Strawberry Fields 0.8.0" . strawberryfields.readthedocs.io . Consultado el 25 de septiembre de 2018 .
  43. 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 . 
  44. 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". Reviews of Modern Physics . 84 (2): 621– 669. arXiv : 1110.3234 . Bibcode : 2012RvMP...84..621W . doi : 10.1103/RevModPhys.84.621 . S2CID 119250535 . 
  45. "Hardware" . strawberryfields.ai . Consultado el 26 de marzo de 2021 .
  46. "En la carrera hacia los cientos de cúbits, los fotones podrían 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 .
  47. "pytket" . GitHub . 22 de enero de 2022.
  48. 1 2 "QuantumFramework" . resources.wolframcloud.com . Consultado el 18 de agosto de 2025 .
  49. Omer, Bernhard. "El lenguaje de programación QCL" .
  50. Hynek Mlnařík. "LanQ: un lenguaje de programación cuántico imperativo" .
  51. 1 2 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 . 
  52. Da Rosa, Evandro Chagas Ribeiro; De Santiago, Rafael (31 de enero de 2022). "Programación cuántica Ket" . ACM Journal on Emerging Technologies in Computing Systems . 18 (1): 1– 25. doi : 10.1145/3474224 . ISSN 1550-4832 . 
  53. "Programación cuántica Ket" . quantumket.org . Consultado el 18 de mayo de 2023 .
  54. 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.
  55. Baltag, Alexandru; Bergfeld, Jort; Kishida, Kohei; Sack, Joshua; Smets, Sonja; Zhong, Shengyang (2014). "PLQP & Company: Decidable Logics for Quantum Algorithms" . International Journal of Theoretical Physics . 53 (10): 3628– 3647. Bibcode : 2014IJTP...53.3628B . doi : 10.1007/s10773-013-1987-3 . S2CID 254573992 . 
  56. "Software para el lenguaje Q" . 23 de noviembre de 2001. Archivado del original el 20 de junio de 2009. Consultado el 20 de julio de 2017 .
  57. "Introducción a Q# y al kit de desarrollo cuántico - Azure Quantum" . learn.microsoft.com . 30 de marzo de 2023.
  58. "QCL - Un lenguaje de programación para computadoras cuánticas" . tuwien.ac.at . Consultado el 20 de julio de 2017 .
  59. Scott Pakin, "Un ensamblador macro cuántico" , Actas de la 20.ª Conferencia Anual IEEE de Computación Extrema de Alto Rendimiento 2016
  60. 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 .  
  61. Ying, Mingsheng; Feng, Yuan (2010). "Un lenguaje de diagramas 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 .  
  62. ^ 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 . 
  63. 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
  64. 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 ].
  65. Javadi-Abhari, Ali. "Scaffold: Lenguaje de programación cuántica" . Universidad de Princeton - Departamento de Ciencias de la Computación . Universidad de Princeton. Archivado del original el 20 de septiembre de 2020. Recuperado el 22 de septiembre de 2020 .
  66. Litteken, Andrew (28 de mayo de 2020). "Un compilador de investigación cuántica basado en LLVM actualizado con soporte adicional para OpenQASM" . Quantum Science and Technology . 5 (3): 034013. Bibcode : 2020QS & T....5c4013L . doi : 10.1088/2058-9565/ab8c2c . OSTI 1803951. S2CID 219101628 .  
  67. "¿Qué es Silq?" . silq.ethz.ch . Consultado el 21 de junio de 2020 .
  68. 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. S2CID 219397029 . 
  69. Peter Selinger, "Hacia un lenguaje de programación cuántica" , Estructuras matemáticas en ciencias de la computación 14(4):527-586, 2004.
  70. 1 2 Jonathan Grattage: Investigación sobre QML Archivado el 31 de marzo de 2008 en Wayback Machine (sitio web)
  71. 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).
  72. Andre van Tonder (2004), "Un cálculo lambda para la computación cuántica" , SIAM J. Comput., 33(5), pp. 1109–1135. También disponible en arXiv:quant-ph/0307150 .
  73. Peter Selinger y Benoît Valiron (2006), "Un cálculo lambda para computación cuántica con control clásico" , Mathematical Structures in Computer Science 16(3): 527–552.
  74. Pablo Arrighi, Gilles Dowek, "Cálculo lambda algebraico lineal: orden superior, codificaciones y confluencia" , 2006.
  75. "El simulador de operaciones cuánticas integrado en lenguaje" . github.io . Consultado el 20 de julio de 2017 .
  76. Grupo de Arquitecturas y Computación Cuántica (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/ , 2011
  77. "StationQ" . microsoft.com . Consultado el 20 de julio de 2017 .
  78. "Operaciones cuánticas integradas en el lenguaje: LIQUi | > " . Microsoft . 2016.
  79. "QML: Un lenguaje de programación cuántica funcional" . 26 de septiembre de 2007. Archivado del original el 26 de septiembre de 2007.
  80. Jonathan Grattage, QML: Un lenguaje de programación cuántica funcional (compilador) Archivado el 5 de marzo de 2016 en Wayback Machine , 2005–2008
  81. Philip Maymin, "Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms" , 1996
  82. van Tonder, André. "Un cálculo lambda para la computación cuántica (sitio web)" . Archivado del original el 5 de marzo de 2016. Recuperado el 2 de octubre de 2007 .
  83. Peter Selinger, Benoˆıt Valiron, "Cálculo lambda cuántico" .
  84. "El lenguaje Quipper" .
  85. Green, Alexander S.; Lumsdaine, Peter LeFanu; Ross, Neil J.; Selinger, Peter; Valiron, Benoît. "El idioma quipper (sitio web)" .
  86. Alexander S. Green; 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 . Notas de clase en ciencias de la computación. 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 . 

Lecturas adicionales

  • Mingsheng, Ying (2024). Fundamentos de la programación cuántica (2.ª  ed.). Cambridge, Massachusetts: Morgan Kaufmann. ISBN 978-0-4431-5942-8. OCLC 1406095194 . 978-0-4431-5943-5 (libro electrónico). 
  • Serrano, Manuel A.; Pérez-Castillo, Ricardo; Piattini, Mario, eds. (2022). Ingeniería de software cuántica (1ª  ed.). Cham, Suiza: Springer. doi : 10.1007/978-3-031-05324-5 . ISBN 978-3-031-05323-8. OCLC 1347696597 . 978-3-031-05326-9 (tapa blanda) y 978-3-031-05324-5 (libro electrónico). 
  • Lista seleccionada de todos los proyectos de software cuántico de código abierto.
  • Bibliografía sobre lenguajes de programación cuántica (actualizada en mayo de 2007)
  • Ciclo de conferencias sobre física cuántica y lógica (QPL) (la L significaba "lenguajes" hasta 2006).
  • Lenguaje de programación cuántica en Quantiki. Archivado el 3 de abril de 2010 en Wayback Machine .
  • Documentación de QMASM
  • Documentación de pyQuil, incluyendo la Introducción a la Computación Cuántica . Archivada el 18 de julio de 2018 en Wayback Machine .
  • Fuente de andamios
Obtenido de " https://en.wikipedia.org/w/index.php?title=Quantum_programming&oldid=1358346779 "