A partir de esta pregunta, deduje que los principales lenguajes de programación de computación cuántica son Q # y QISKit .
¿Qué otros lenguajes de programación están disponibles para programar computadoras cuánticas? ¿Hay ciertos beneficios al elegir unos en particular?
EDITAR: Estoy buscando lenguajes de programación, no emuladores. Los emuladores simulan cosas. Los lenguajes de programación son un método para escribir instrucciones (ya sea para objetos reales o para emuladores). Puede haber un solo lenguaje que funcione para múltiples emuladores y viceversa.
programming
Pro Q
fuente
fuente
Respuestas:
Lista de Wikipedia de los lenguajes de programación de computadoras Quantum
(Esta respuesta no es una copia de esa página web, está más actualizada y con enlaces verificados. En algunos casos se agrega el artículo del autor o el enlace al sitio web).
Conjuntos de instrucciones cuánticas
Quil : 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. Ver también PyQuil .
OpenQASM : la representación intermedia introducida por IBM para usar con su experiencia cuántica .
Lenguajes de programación cuántica
Lenguajes imperativos
QCL : uno de los primeros lenguajes de programación cuántica implementados.
Seudocódigo cuántico : [No es realmente un lenguaje, pero es una buena manera de representar algoritmos y operaciones cuánticas.] EH Knill. "Convenciones para el pseudocódigo cuántico", no publicado, informe LANL LAUR-96-2724 (PDF Source 1 , 2 ), busque en arXiv todos los documentos que hacen referencia al artículo de Knill.
Q | SI> - Documento original en chino con resumen en inglés. Versión en inglés en arXiv: " Q | SI>: Un entorno de programación cuántica ".
Idioma Q - Software para la lengua Q .
qGCL - " Alternancia en la programación cuántica: de la superposición de datos a la superposición de programas ".
QMASM : específico para sistemas D-Wave. Documentación de QMASM . La página de edif2qmasm y QMASM del autor Scott Pakinen LANL.
Lenguajes funcionales
QFC y QPL - Sitio web del autor .
QML - Sitio principal: http://sneezy.cs.nott.ac.uk/QML/ (no responde, un mes después), copia Archive.Org de sneezy.cs.nott.ac.uk , tesis doctoral del autor: " Un lenguaje de programación cuántico funcional "(PDF).
LIQUi |> - Extensión a F # (F Sharp).
Cálculos lambda cuánticos : Wikipedia enumera algunas versiones .
Quipper : un lenguaje de programación funcional escalable basado en Haskell para la computación cuántica. Ver también Proto-Quipper . Una charla de Peter Selinger (FSCD 2018) titulada " Desafíos en los lenguajes de programación cuántica " ( .PDF ) analiza estos idiomas.
Lenguajes multi-paradigma
Q # (Q Sharp) : un lenguaje de programación específico de dominio utilizado para expresar algoritmos cuánticos. Inicialmente fue lanzado al público por Microsoft como parte del Kit de desarrollo Quantum. También están disponibles Microsoft Quantum Katas , una serie de tutoriales a su propio ritmo destinados a enseñar elementos de computación cuántica y programación Q # al mismo tiempo.
Strawberry Fields (de XanduAI ) es una biblioteca Python de pila completa para diseñar, simular y optimizar circuitos ópticos cuánticos variables continuos.
El sitio web Quantum Computing Report tiene una página web de Herramientas que enumera más de una docena de enlaces, algunos nuevos y otros que repiten la lista anterior.
Consulte también la página web de QuanTiki: " Lista de simuladores de control de calidad ", para obtener una gran lista de simuladores y lenguajes de programación basados en: C / C ++, CaML, OCaml, F #, junto con GUI basado, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML y otros servicios en línea que proporcionan calculadoras, compiladores, simuladores y kits de herramientas, etc.
Si planea usar una computadora cuántica en particular, uno esperaría que el lenguaje de programación desarrollado por el fabricante sea el más adecuado para esa máquina en particular y tenga un buen soporte.
Elegir un idioma con un seguimiento más amplio significa que hay más foros disponibles y, con suerte, más correcciones de errores y soporte.
Desafortunadamente, eso deja algunos productos de gran nicho para luchar por ganar una base de usuarios. Intentar encontrar un idioma que sea potente / expresivo y compatible con varias plataformas es el truco, la respuesta es una opinión ATM.
Ryan LaRose ofrece una evaluación de cuatro plataformas de software: Forest (pyQuil), QISKit, ProjectQ y Quantum Developer Kit en " Descripción general y comparación de las plataformas de software Quantum de nivel de puerta " (6 de julio de 2018).
Actualizaciones:
Cirq de Google y OpenFermion-Cirq: " Blog de IA de Google - Anunciando Cirq: un marco de código abierto para algoritmos NISQ ".
El SDK Leap and Ocean de D-Wave permite el acceso a un sistema D-Wave 2000Q ™ en un entorno de nube con acceso a una máquina de recocido cuántico de más de 2000 qubits para probar y ejecutar cargas de trabajo de forma gratuita, suponiendo que los algoritmos principales utilizados entren en el grupo de código abierto . Solicite iniciar sesión en la página web Leap In de D-Wave .
El servicio Quantum Cloud Service (QCS) de Rigetti Computing ofrece una imagen de máquina cuántica, un entorno virtualizado de programación y ejecución preconfigurado con Forest 2.0, para acceder a hasta 16 qubits de una computadora de 128 qubit.
Estén atentos para obtener información sobre el Digital Annealer de Fujitsu , una arquitectura capaz de realizar cálculos unas 10.000 veces más rápido que una computadora convencional. Si finalmente proporcionan un entorno de desarrollo compatible con las computadoras cuánticas verdaderas , estos dos párrafos permanecerán en esta respuesta; de lo contrario, los eliminaré.
Si bien su chip de silicio no es de naturaleza cuántica, Fujitsu se ha asociado con 1Qbit para desarrollar lo que se describe como un " Servicio de Nube de AI inspirado en Quantum ", ya sea que su Annealer digital grazne como un pato (se recorta como un D-Wave y usa código compatible) Queda por ver. Visite aquí para acceder al Servicio técnico de Fujitsu Digital Annealer .
El QWIRE ( coro ) de la Universidad de Pensilvania es un lenguaje de circuito cuántico y una herramienta de verificación formal, tiene una página web de GitHub .
Una revisión de: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra and Aqua, Qiskit Tutorials y Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC y finalmente XACC VQE se ofrecen en el documento: " Software de código abierto en computación cuántica " (21 de diciembre de 2018), de Mark Fingerhuth, Tomáš Babej y Peter Wittek.
Volveré a esta respuesta de vez en cuando para hacer actualizaciones, sin golpes excesivos .
fuente
Los proveedores de hardware del modelo Gate han desarrollado sus propios idiomas de bajo nivel:
Estos tienen sdk de python de nivel superior disponibles:
Rigetti también está envolviendo su idioma en una biblioteca de nivel superior para llamar a aplicaciones preconstruidas llamadas Grove .
Microsoft ha desarrollado Q # para correr contra su simulador existente, y eventualmente su hardware físico.
Dado que los idiomas anteriores son específicos del proveedor, el principal beneficio es que puede ejecutar programas cuánticos en sus computadoras.
Fuera de los lenguajes específicos del proveedor se encuentra Scaffold, que está siendo desarrollado por investigadores de Princeton. Este lenguaje es interesante ya que incluye una cadena de herramientas para analizar los programas para determinar los costos, el potencial de rendimiento y el potencial de escalabilidad.
Editar: Project Q es otro marco que le permite desarrollar programas utilizando Python que pueden ejecutarse en un simulador incluido.
Oak Ridge National Labs ha comenzado a trabajar en un proyecto llamado XACC que pretende abstraer el código específico del proveedor para permitir a los usuarios acceder a las diversas plataformas de hardware sin duplicar el código en cada idioma específico del proveedor.
fuente
O incluso mire Quipper , un lenguaje de programación Quantum funcional. ¡Con semántica monádica, funcionalidad integrada para computación cuántica reversible, soporte de circuito jerárquico y más! También se usa en la práctica real: para un algoritmo para calcular la solución de la ecuación de Dirac por LaFlamme.
fuente
Incluiría al compositor de IBM. No tiene ganas de programar porque no obtienes todos los errores, errores y funcionalidades, pero convierte claramente tus instrucciones en puertas a QASM y las ejecuta en un simulador real de IBM o en una computadora cuántica real de IBM (la opción es Los usuarios).
fuente
Desafortunadamente, la lista en Quantiki es bastante antigua y no está bien mantenida. Incluso enumerar todos los lenguajes de programación cuántica en una sola respuesta a esta pregunta no es sostenible ya que el panorama cuántico está en constante evolución. Por ejemplo, Google acaba de lanzar Cirq , un nuevo marco de programación cuántica para computadoras Noisy Intermediate Scale Quantum (NISQ) que no aparece en ninguna de las respuestas anteriores, ya que se anunció hace solo un par de días.
Para abordar este problema y como respuesta a otra pregunta sobre QC StackExchange, comencé una lista curada de proyectos de software de código abierto en GitHub que también incluye una descripción completa de los marcos y lenguajes de programación cuántica desarrollados activamente. La comunidad mantiene activamente la lista y constantemente agregamos nuevos proyectos.
fuente