ETH- Zürich: Die erste intuitive Programmiersprache für Quantencomputer entwickelt

ETH- Zürich: Die erste intuitive Programmiersprache für Quantencomputer entwickelt

16. Juni 2020 0 Von Horst Buchwald

ETH- Zürich: Die erste intuitive Programmiersprache für Quantencomputer entwickelt

Zürich, 16.6.2020

Informatikerinnen und Informatiker der ETH Zürich haben die erste Programmiersprache entwickelt, mit der sich Quantencomputer so einfach, zuverlässig und sicher programmieren lassen wie klassische Computer. Martin Vechev, Informatik-Professor am Secure, Reliable and Intelligent Systems Lab (SRI) der ETH, erklärt: „Unsere Quanten-Programmiersprache Silq erlaubt es Programmierern, das Potenzial von Quantencomputern besser zu nutzen als mit bestehenden Sprachen, weil der Code kompakter, schneller, intuitiver und für Programmierer leichter verständlich ist“.

In dieser Woche wird Vechev Silq auf der PLDI 2020, einer Konferenz für Programmiersprachen, anderen Experten auf diesem Gebiet vorstellen. Um die Diskussion, Annahme und Weiterentwicklung zu erleichtern, haben er und sein Team Silq auch auf einer eigenen Website veröffentlicht.

Wegen ihrer enormen Potenziale nahm das Interesse von Forschern am Quantencomputing in den letzten zehn Jahren enorm zu. Heute glaubt die Mehrheit, das diese Superrechner eines Tages in der Lage sein werden, größere Probleme schneller zu lösen als klassische Computer, da sie für ihre Berechnungen verschränkte Quantenzustände verwenden, in denen sich verschiedene Informationsbits zu einem bestimmten Zeitpunkt überlappen.

Für bestimmte „Quantenalgorithmen“, d.h. Rechenstrategien, ist auch bekannt, dass sie schneller sind als klassische Algorithmen, die das Potenzial von Quantencomputern nicht ausschöpfen. Bis heute können diese Algorithmen jedoch noch nicht auf bestehender Quantenhardware berechnet werden, weil Quantencomputer derzeit noch zu fehleranfällig sind.

Die Nutzung des Potenzials der Quantenberechnung erfordert nicht nur die neueste Technologie, sondern auch eine Quantenprogrammiersprache zur Beschreibung von Quantenalgorithmen. Im Prinzip ist ein Algorithmus ein „Rezept“ für die Lösung eines Problems; eine Programmiersprache beschreibt den Algorithmus so, dass ein Computer die notwendigen Berechnungen durchführen kann.

Heute sind Quantenprogrammiersprachen eng an eine bestimmte Hardware gebunden, d.h. sie beschreiben genau das Verhalten der zugrunde liegenden Schaltungen. Für den Programmierer sind diese „Hardware-Beschreibungssprachen“ umständlich und fehleranfällig, da die einzelnen Programmieranweisungen äusserst detailliert sein müssen und somit die zur Implementierung von Quantenalgorithmen notwendigen Minutien explizit beschreiben.

Hier setzen Vechev und seine Gruppe mit der Entwicklung von Silq an. „Silq ist die erste Quanten-Programmiersprache, bei der es nicht primär um den Aufbau und die Funktionalität der Hardware geht, sondern um die Denkweise der Programmierer, wenn sie ein Problem lösen wollen – ohne dass sie jedes Detail der Computerarchitektur und -implementierung verstehen müssen“, sagt Benjamin Bichsel, ein Doktorand in Vechevs Gruppe, der die Entwicklung von Silq betreut.

Silq ist die erste High-Level-Programmiersprache für Quantencomputer . High-Level-Programmiersprachen sind ausdrucksstärker, d.h. sie können auch komplexe Aufgaben und Algorithmen mit weniger Code beschreiben. Dadurch sind sie für Programmierer leichter verständlich und einfacher zu benutzen. Sie können auch mit unterschiedlichen Rechnerarchitekturen eingesetzt werden.

Die größte Innovation und Vereinfachung, die Silq in die Quantenprogrammiersprachen bringt, betrifft eine Fehlerquelle, die die Quantenprogrammierung bisher geplagt hat. Ein Computer berechnet in mehreren Zwischenschritten eine Aufgabe, die Zwischenergebnisse oder temporäre Werte erzeugt.

Um den Speicher zu entlasten, löschen klassische Computer diese Werte automatisch. Informatiker bezeichnen dies als „Garbage Collection“, da die überflüssigen temporären Werte entsorgt werden.

Bei Quantencomputern ist diese Entsorgung aufgrund der Quantenverschränkung schwieriger: Die zuvor berechneten Werte können mit den aktuellen interagieren und die korrekte Berechnung stören. Dementsprechend erfordert die Bereinigung solcher temporärer Werte auf Quantencomputern eine fortgeschrittenere Technik der so genannten Nicht-Berechnung.

„Silq ist die erste Programmiersprache, die nicht mehr benötigte Werte automatisch identifiziert und löscht“, erklärt Bichsel. Die Informatiker erreichten dies durch die Anwendung ihrer Kenntnisse der klassischen Programmiersprachen: Ihre automatische Uncomputation-Methode verwendet nur Programmierbefehle, die frei von speziellen Quantenoperationen sind – sie sind „qfrei“, wie Vechev und Bichsel sagen.

„Silq ist ein großer Durchbruch bei der Optimierung der Programmierung von Quantencomputern; es ist nicht die letzte Phase der Entwicklung“, sagt Vechev. Es gibt noch viele offene Fragen, aber da Silq leichter verständlich ist, hoffen Vechev und Bichsel, sowohl die weitere Entwicklung von Quanten-Programmiersprachen als auch die Theorie und Entwicklung neuer Quantenalgorithmen anzuregen.

„Unser vierköpfiges Team hat nach zwei Jahren Arbeit den Durchbruch geschafft, dank der Kombination verschiedener Fachkenntnisse in den Bereichen Sprachentwurf, Quantenphysik und Implementierung. Wenn sich andere Forschungs- und Entwicklungsteams unsere Innovationen zu eigen machen, wird es ein großer Erfolg sein“, sagt Bichsel.