Silq : un langage pour la programmation quantique de haut niveau

Par:
admin

jeu, 18/06/2020 - 16:17

L'informatique quantique est un sujet qui se développe très fort, à tels point que, même si les cas d'utilisation dans le monde réel sont encore assez rares, le besoin d'un langage de programmation de haut niveau se fait déjà sentir. Des langages comme le Q# de Microsoft ou le SDK Qiskit d'IBM ne sont déjà plus suffisants, à cause de leur niveau d'abstraction faible.

C'est pourquoi les chercheurs de l'ETJ de Zurich ont développé le langage Silq. Celui-ci dispose d'une site dédié sur lequel il est présenté ainsi : Silq est un nouveau langage de programmation de haut niveau pour l'informatique quantique avec un système de type statique puissant. Comme pour les langages de programmation traditionnels, les concepteurs de Silq mettent en avant ses atouts : une sémantique plus intuitive, du code réduit et simplifié, des erreurs de programmation évitées. Des arguments très très classiques pour le coup :-) C'est à se demander si l'informatique, quantique ou pas, parviendra un jour à se débarrasser de ses problèmes récurrents :-)

Le site de Silq présente ensuite celui-ci d'un point de vue (très) technique. Cette présentation requiert de très bonnes bases, pour ne pas dire plus, en informatique quantique.

Notre confère TechCrunch a interrogé Martin Vechev, professeur agrégé d'ETH, sur le pourquoi de la création de Silq. Martin Vechev explique :

L'histoire du projet est que nous voulions résoudre un problème central de l'informatique quantique. Et si vous voulez résoudre un problème central de l'informatique quantique, par exemple, si vous voulez analyser et raisonner sur les programmes quantiques, vous devez avoir un langage dans lequel ces problèmes sont exprimés. Il existe déjà des langages. Mais lorsque nous avons examiné divers problèmes de l'informatique quantique, nous nous sommes aperçus que la façon dont les programmes sont exprimés n'est ni idéale, ni optimale. Au départ, nous ne pensions pas que nous aurions besoin de créer un nouveau langage.

L'étudiant Benjamin Bichsel ajoute : Et nous n'avons même pas envisagé cela au tout début. Nous voulions résoudre des problèmes beaucoup plus avancés en informatique quantique. Nous avons pensé: d'accord, choisissons rapidement un langage, puis travaillons avec. Et puis nous avons réalisé que les langages existants sont complètement inadéquats pour le type de propriétés de plus haut niveau que nous souhaitons manipuler.

Bichsel nous donne ensuite un exemple pour montrer les besoins d'une meilleure abstraction : Dans les langages classiques, si vous calculez "A OU B OU C", vous devez d'abord calculer "A OU B", puis l'utiliser ce résultat pour calculer "[le résultat] OU C ", et vous oubliez simplement cette valeur temporaire que vous avez calculé entre-temps. Si vous faites cela en informatique quantique, vous obtenez des effets secondaires inattendus. […] En fin de compte, ce à quoi vous vous attendez ne se produira pas dans ce cas. Vous devez donc gérer cela d'une manière ou d'une autre. Et ce que cela signifie pour pratiquement tous les langages quantiques existants, c'est que vous êtes obligé de travailler à un niveau d'abstraction très bas, où vous devez penser à toutes les valeurs temporaires. Et cela empêche essentiellement toute sorte de réflexion de haut niveau.

En informatique quantique, ce problème s'appelle de décalcul. Et un peu comme les langages classiques évolués ont des ramasses-miettes (garbage collector) pour éviter que le programmeur ait tout le temps le nez dans la poubelle pour gérer les déchets, Silq est doué d'un décalcul automatique, tandis que les langages existants jusqu'ici tentent de contourner le problème de manière alambiquée.