← Derniers articles
⚛️ quantum physics

A Survey of Quantum Programming Languages

Cet article introduit un cadre de classification pour répertorier et comparer dix langages de programmation quantique populaires, identifiant les défis clés pour leur conception future à la lumière des récentes percées en informatique quantique.

Auteurs originaux : Quan Do, Hersh Gupta, Xiyuan Cao, Aarav Pabla, Pranav Singamsetty, Evan O'Grady, Keli Huang, Jens Palsberg

Publié 2026-06-26
📖 6 min de lecture🧠 Analyse approfondie

Auteurs originaux : Quan Do, Hersh Gupta, Xiyuan Cao, Aarav Pabla, Pranav Singamsetty, Evan O'Grady, Keli Huang, Jens Palsberg

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Imaginez que vous essayez de construire une maison, mais qu'au lieu d'utiliser des briques et du bois standards, vous construisez avec des « briques quantiques » qui peuvent exister à deux endroits à la fois. Pour ce faire, vous avez besoin de plans et d'un langage pour dire exactement à l'équipe de construction quoi faire.

Ce document est une étude des « langages » que les programmeurs utilisent pour écrire des instructions pour ces ordinateurs quantiques. Les auteurs, une équipe de l'UCLA, ont voulu déterminer quels langages sont les meilleurs outils pour la tâche. Ils ne se sont pas contentés de lire les manuels ; ils ont réellement construit les trois mêmes structures complexes (algorithmes) en utilisant dix langages différents pour voir lequel était le plus facile ou le plus difficile à utiliser.

Voici un aperçu de leurs conclusions en utilisant des analogies simples :

1. L'objectif : Construire des structures quantiques

L'équipe a choisi trois « projets de construction » spécifiques pour tester les langages :

  • L'algorithme de Shor : Considérez cela comme un outil de crochetage de serrure de maître. Il est conçu pour décomposer de grands nombres en leurs facteurs premiers (comme démonter une immense tour de Lego pour trouver les briques spécifiques utilisées). C'est célèbre car cela pourrait théoriquement briser la sécurité actuelle d'Internet.
  • Simulation Hamiltonienne : C'est comme simuler un système météorologique complexe ou une réaction chimique. Le but est de prédire comment un groupe de particules minuscules va se déplacer et interagir au fil du temps. Ils ont testé deux manières différentes de le faire :
    • Trotterisation : Comme faire une longue promenade en faisant de nombreux petits pas réguliers.
    • LCU (Combinaison Linéaire d'Unitaires) : Comme prendre un raccourci en combinant plusieurs chemins à la fois, mais cela nécessite un peu plus de mathématiques pour la mise en place.

2. Le cadre : Comment ils ont jugé les langages

Pour comparer les dix langages (comme Cirq, Qiskit, Q#, Silq, etc.), les auteurs ont créé un « bulletin de notes » avec trois catégories principales :

  • Le modèle de programmation (Le style de blueprint) :

    • Embarqué (Embedded) : Imaginez que vous écrivez une recette (la partie informatique classique) et que, à l'intérieur de cette recette, vous écrivez un manuel d'instructions séparé et détaillé pour un robot (la partie quantique). Vous devez changer de chapeau entre être un chef et un programmeur de robots. La plupart des langages actuels fonctionnent de cette manière.
    • Hybride : Imaginez une cuisine où le chef et le robot font partie de la même équipe et parlent la même langue. Vous pouvez dire au robot de couper un légume, puis immédiatement dire au chef de remuer la marmite, le tout dans un flux continu. C'est plus fluide, mais plus difficile à construire.
  • L'expressivité (La boîte à outils) :
    Le langage possède-t-il les bons outils pour faciliter la tâche ?

    • Manipulation de Pauli : Possède-t-il des « briques Lego » pré-faites pour la mathématique de la physique spécifique, ou devez-vous construire les mathématiques de toutes pièces ?
    • Encodage de données classiques : Peut-il facilement transformer des nombres normaux en états quantiques ?
    • Entiers quantiques : Peut-il faire des calculs avec des « nombres quantiques » (des nombres faits de qubits) tout comme nous faisons des calculs avec des nombres normaux ?
    • Allocation dynamique : Le langage peut-il saisir un nouvel outil (qubit) sur l'étagère seulement quand vous en avez besoin, et le remettre en place quand vous avez terminé, sans que vous ayez à compter exactement combien d'outils vous aurez besoin à l'avance ?
  • La sécurité (Les garde-fous) :

    • Sécurité du typage (Type Safety) : Le langage vous empêche-t-il d'essayer d'utiliser un marteau sur une vis ? Il vérifie votre code avant de l'exécuter pour s'assurer que vous ne faites pas d'erreurs stupides.
    • Sécurité de l'initialisation : En informatique quantique, si vous réutilisez un outil « sale » (un qubit qui a déjà été utilisé auparavant), cela pourrait perturber votre nouveau projet. Un langage sûr nettoie automatiquement l'outil (dé-calcule/uncompute) pour qu'il soit frais et prêt à être utilisé à nouveau.

3. Les résultats : Pas d'outil parfait

L'équipe a écrit les mêmes programmes dans dix langages différents (un mélange d'outils industriels comme le Cirq de Google et le Q# de Microsoft, et d'outils académiques comme Silq).

  • La grande conclusion : Il n'existe pas encore de langage « parfait ».

    • Certains langages sont excellents pour la sécurité (comme Silq, qui nettoie automatiquement ses outils) mais manquent de certains raccourcis mathématiques sophistiqués.
    • Certains langages sont excellents pour les raccourcis mathématiques (comme CUDA-Q ou Cirq) mais exigent que le programmeur soit très prudent dans la gestion de ses outils.
    • Certains langages sont « Hybrides » (mélangeant le classique et le quantique de manière fluide), tandis que d'autres sont « Embarqués » (les gardant séparés).
  • Le test des « lignes de code » : Ils ont compté combien de lignes de code étaient nécessaires pour construire la même structure dans chaque langage.

    • Q# et Silq étaient très concis (moins de lignes) pour certaines tâches.
    • PyQuil et CUDA-Q nécessitaient parfois plus de lignes car ils devaient construire manuellement des choses que d'autres langages faisaient automatiquement.
    • Curieusement, la méthode de simulation « LCU » nécessitait toujours plus de code que la méthode de « Trotterization », quel que soit le langage.

4. La conclusion

Le document conclut que bien que nous ayons de nombreux langages à notre disposition, aucun d'entre eux ne possède tout ce dont nous avons besoin.

  • Si vous voulez de la sécurité, vous risquez de perdre en facilité d'utilisation.
  • Si vous voulez des outils mathématiques puissants, vous devrez peut-être gérer la mémoire (les qubits) vous-même.

Les auteurs espèrent que cette étude aidera les futurs concepteurs de langages à construire un langage « couteau suisse » qui possède la meilleure sécurité, les meilleurs outils mathématiques et le flux de travail le plus fluide, rendant la programmation quantique accessible à tous, et pas seulement aux experts en physique.

En bref : La programmation quantique, c'est comme apprendre à conduire un nouveau type de voiture. Pour l'instant, nous avons dix modèles différents (langages). Certains ont d'excellents freins (sécurité), d'autres ont des moteurs puissants (expressivité), mais aucun n'a encore la combinaison parfaite de caractéristiques. Ce document est la première étape pour déterminer à quoi devrait ressembler cette voiture parfaite.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →