A partir de cette question, j'ai compris que les principaux langages de programmation de l'informatique quantique sont Q # et QISKit .
Quels autres langages de programmation sont disponibles pour programmer des ordinateurs quantiques? Y a-t-il certains avantages à en choisir?
EDIT: Je cherche des langages de programmation, pas des émulateurs. Les émulateurs simulent des choses. Les langages de programmation sont une méthode d’écriture d’instructions (pour des objets réels ou pour des émulateurs). Il peut y avoir une seule langue qui fonctionne pour plusieurs émulateurs et vice versa.
programming
Pro Q
la source
la source
Réponses:
Liste Wikipedia des langages de programmation de l'ordinateur Quantum
(Cette réponse n'est pas une copie de cette page Web, elle est plus à jour et contient des liens vérifiés. Dans certains cas, le lien de l'auteur ou du site Web est ajouté.)
Jeux d'instructions quantiques
Quil - Architecture d’ensemble d’instructions pour l’informatique quantique ayant introduit pour la première fois un modèle de mémoire partagée quantique / classique. Voir aussi PyQuil .
OpenQASM - Représentation intermédiaire introduite par IBM pour être utilisée avec Quantum Experience .
Langages de programmation quantiques
Langues impératives
QCL - L'un des premiers langages de programmation quantique mis en œuvre.
Pseudocode quantique - [Ce n'est pas vraiment un langage, mais un bon moyen de représenter des algorithmes et des opérations quantiques.] EH Knill. "Conventions for Quantum Pseudocode", non publié, rapport LANL LAUR-96-2724 (PDF Source 1 , 2 ), recherchez sur arXiv tous les articles faisant référence à celui de Knill.
Q | SI> - Papier original en chinois avec résumé en anglais. Version anglaise sur arXiv: " Q | SI>: Un environnement de programmation quantique ".
Langue Q - Logiciel pour la langue Q .
qGCL - " Alternance en programmation quantique: de la superposition de données à la superposition de programmes ".
QMASM - Spécifique aux systèmes D-Wave. Documentation QMASM . Lapage Web edif2qmasm et QMASM de Scott Pakinsur LANL.
Langages fonctionnels
QFC et QPL - Site Web de l'auteur .
QML - Site principal: http://sneezy.cs.nott.ac.uk/QML/ (ne répond pas, un mois plus tard), Archive.Org copie de sneezy.cs.nott.ac.uk , thèse de l'auteur: " Un langage de programmation quantique fonctionnel "(PDF).
LIQUi |> - Extension en fa # (fa dièse).
Quantum lambda calculi - Wikipedia en répertorie quelques versions .
Quipper - Un langage de programmation fonctionnel évolutif basé sur Haskell pour l'informatique quantique. Voir aussi Proto-Quipper . Une conférence de Peter Selinger (FSCD 2018) intitulée "Les défis des langages de programmation quantiques " ( .PDF ) traite de ces langages.
Langues multi-paradigmes
Q # (Q Sharp) - Langage de programmation spécifique à un domaine utilisé pour exprimer des algorithmes quantiques. Il a été initialement rendu public par Microsoft dans le cadre du kit de développement Quantum. Microsoft Quantum Katas est également disponible, une série de didacticiels auto-rythmés visant à enseigner simultanément des éléments d'informatique quantique et de programmation Q #.
Strawberry Fields (de XanduAI ) est une bibliothèque Python à pile complète pour la conception, la simulation et l'optimisation de circuits d'optique quantique à variables variables continues.
Le site Web Quantum Computing Report comporte une page Web Outils répertoriant une douzaine de liens, dont certains nouveaux et certains répétant la liste ci-dessus.
Voir également la page Web de QuanTiki: " Liste de simulateurs de contrôle de la qualité ", pour une liste considérable de simulateurs et de langages de programmation basés sur: C / C ++, CaML, OCaml, F #, ainsi que sur une interface graphique, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML et d’autres services en ligne proposant des calculatrices, des compilateurs, des simulateurs et des kits d’outils, etc.
Si vous envisagez d'utiliser un ordinateur quantique particulier, vous pouvez espérer que le langage de programmation développé par le fabricant est à la fois le mieux adapté à cette machine et bien pris en charge.
Choisir une langue avec un nombre de lecteurs plus important signifie qu'il y a plus de forums disponibles et, espérons-le, plus de corrections de bugs et de support.
Malheureusement, certains produits de grande niche ont du mal à se faire une base d'utilisateurs. Essayer de trouver un langage à la fois puissant / expressif et pris en charge sur différentes plates-formes est l’astuce, la réponse est un guichet d’opinion.
Une évaluation de quatre plates-formes logicielles: Forest (pyQuil), QISKit, ProjectQ et le kit de développement Quantum est proposée par Ryan LaRose dans " Aperçu et comparaison des plates-formes logicielles Quantum Gate Level " (6 juil. 2018).
Mises à jour:
Cirq de Google et OpenFermion-Cirq: " Blog sur l'IA de Google - Annonce de Cirq: un cadre Open Source pour les algorithmes NISQ ".
Le SDK Leap and Ocean de D-Wave permet l’accès à un système D-Wave 2000Q ™ dans un environnement cloud ainsi qu’à une machine de recuit quantique de plus de 2000 qubits pour tester et exécuter des charges de travail gratuitement, en supposant que les principaux algorithmes utilisés entrent dans le pool open source. . Postulez pour vous connecter sur la page Web Leap In de D-Wave .
Le service Quantum Cloud Service (QCS) de Rigetti Computing offre une Quantum Machine Image, un environnement de programmation et de virtualisation préconfiguré avec Forest 2.0, permettant d’accéder à 16 qubits maximum d’un ordinateur de 128 bits.
Restez à l' affût des informations sur le Digital Annealer de Fujitsu , une architecture capable d'effectuer des calculs environ 10 000 fois plus rapidement qu'un ordinateur traditionnel. S'ils fournissent finalement un environnement de développement compatible avec les véritables ordinateurs quantiques, ces deux paragraphes resteront dans cette réponse, sinon je les supprimerai.
Bien que leur puce de silicium ne soit pas quantique par nature, Fujitsu s’est associé à 1Qbit pour développer ce qu’on appelle un " service cloud inspiré de Quantum Inspired ", qu’il s’agisse de leurs annales numériques comme d’un canard (anneaux comme un D-Wave et utilise un code compatible) ça reste à voir. Visitez ici pour accéder au service technique Fujitsu Digital Annealer .
Le QWIRE ( choeur ) de l'Université de Pennsylvanie est un langage de circuit quantique et un outil de vérification formelle. Il possède une page Web GitHub .
Une revue de: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsit, Qiskit Terra et Aqua, Tutoriels Qiskit et Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, référence-qvm, ScaffCC, Strawberry Fields, XACC et enfin XACC VQE sont proposés dans l'article: " Logiciel open source en informatique quantique " (21 décembre 2018), de Mark Fingerhuth, Tomáš Babej et Peter Wittek.
Je reviendrai de temps en temps sur cette réponse pour faire des mises à jour, sans heurts excessifs .
la source
Les fournisseurs de matériel de modèle Gate ont développé leurs propres langages de bas niveau:
Ceux-ci ont des sdk python de niveau supérieur disponibles:
Rigetti encapsule également son langage dans une bibliothèque de niveau supérieur permettant d’appeler des applications prédéfinies appelées Grove .
Microsoft a développé Q # pour fonctionner avec son simulateur existant et, éventuellement, son matériel physique.
Comme les langues ci-dessus sont spécifiques à chaque fournisseur, le principal avantage est que vous pouvez exécuter des programmes quantiques sur leurs ordinateurs.
En dehors des langages spécifiques au fournisseur, Scaffold est en cours de développement par les chercheurs de Princeton. Ce langage est intéressant car il inclut une chaîne d’ outils pour analyser les programmes afin de déterminer les coûts, le potentiel de performance et le potentiel d’extensibilité.
Edit: Project Q est un autre framework qui vous permet de développer des programmes utilisant Python pouvant s’exécuter sur un simulateur inclus.
Oak Ridge National Labs a commencé à travailler sur un projet appelé XACC, destiné à résumer le code spécifique du fournisseur afin de permettre aux utilisateurs d'accéder aux différentes plates-formes matérielles sans dupliquer le code dans la langue de chaque fournisseur.
la source
Ou même regardez Quipper , un langage de programmation fonctionnel Quantum. Avec la sémantique monadique, une fonctionnalité intégrée pour le calcul quantique réversible, la prise en charge de circuits hiérarchiques, et plus encore! Utilisé aussi dans la pratique - pour un algorithme permettant de calculer la solution de l'équation de Dirac par LaFlamme.
la source
J'inclurais Composer d'IBM. Cela ne ressemble pas à de la programmation parce que vous n’obtenez pas tous les bugs, erreurs et fonctionnalités, mais il convertit clairement vos instructions sur les portes en QASM et les exécute sur un véritable simulateur IBM ou un véritable ordinateur quantique IBM (le choix est: les utilisateurs).
la source
Malheureusement, la liste de Quantiki est assez ancienne et mal entretenue. Même énumérer tous les langages de programmation quantiques en une seule réponse à cette question n’est pas viable, car le paysage quantique est en constante évolution. Par exemple, Google vient de publier Cirq , un nouveau cadre de programmation quantique pour ordinateurs Noisy Intermediate Scale Quantum (NISQ) qui ne figure dans aucune des réponses ci-dessus depuis son annonce il y a quelques jours à peine.
Pour résoudre ce problème et en réponse à une autre question sur QC StackExchange, j'ai créé une liste organisée de projets de logiciels à code source ouvert sur GitHub, qui comprend également un aperçu complet des langages et des cadres de programmation quantique activement développés. La liste est activement maintenue par la communauté et nous ajoutons constamment de nouveaux projets.
la source