5.3.2 Quipper : langage de programmation quantique
scalable
Description
Quipper [Alexander S. Green et Valiron, 2012] [Alexander S.
Green et Valiron, 2013]est un langage de programmation quantique fonctionnel et
scalable, il a été testé par l'implémentation de
sept algorithmes quantiques non-triviaux dans la littérature et qui sont
:
- BWT (pour Binary Welded Tree). Pour trouver des noeuds dans un
graphe.
- BF (Boolean Formula). Pour évaluer une formule NAND.
La version de ces algorithmes implémentés dans Quipper calcule la
stratégie de gain pour le jeu de Hex.
- CL (Class Number). Pour approximer la classe de groupe d'un
nombre réel quadratique.
51
chapitre5 : Langages de programmation quantiques
- GSE (Ground State Estimation). Pour calculer le niveau
d'énergie le plus faible d'état d'une particule
moléculaire.
- QLS (Quantum Linear System). Pour résoudre un
système d'équation linéaire.
- USV (Unique Shortest Vector). Pour choisir le vecteur court
parmi une collection. - TF (Triangle Finding). Pour exhiber un triangle
à l'intérieur d'un graph dense.
Ces algorithmes sont choisis pour représenter une
portée étendue de la capacité de l'infor-matique
quantique. Les algorithmes ont étés implémentés par
une équipe de 11 Quipper programmeur distribués
géographiquement. Quipper fournier entre autre : [Alexander S. Green et
Valiron, 2013]
- - Langage de haut niveau pour la description de circuit,
cela inclut la description porte à porte des fragments de circuit, ainsi
que les opérateurs puissants pour l'assemblage et la manipulation de
circuits.
- Une sémantique monadiques, permettant un
mélange de styles de programmation procé-durale et
déclarative.
- Les installations intégrées pour la
synthèse automatique des circuits quantiques réversibles,
notamment à partir du code classique.
- Prise en charge de circuits hiérarchiques. -
Extensible types de données quantiques. - Circuits transformation
programmables.
- Prise en charge de trois phases d'exécution : la
compilation, le temps de génération de circuit, et le temps
d'exécution de circuit. Une opération de levage dynamique pour
permette le circuit de génération d'être
paramétrique sur les valeurs générées lors de
l'exécution du circuit.
- Bibliothèques étendues de fonctions
quantiques, incluant : des bibliothèques pour les entiers quantiques, la
transformée de Fourier quantique; une mise en oeuvre de QRAM
efficace;
52
chapitre5 : Langages de programmation quantiques
bibliothèques pour la simulation de circuits
pseudo-classiques, circuits stabilisant et circuits arbitraires, les
bibliothèques pour la décomposition exacte et approximative de
circuits en ensembles de grille spécifiques.
|