Die erste intuitive Programmiersprache für Quantencomputer
Auf dem Weg zu leistungsf?higen Quantencomputern sind in jüngster Zeit einige technische Fortschritte erzielt worden. Nun haben Informatiker der ETH Zürich im Bereich der Programmierung einen wichtigen Durchbruch erzielt: Ihre Quantenprogrammiersprache ist die erste, die so elegant, einfach und sicher ist wie man das von klassischen Computersprachen kennt.
Das Programmieren von Quantencomputern wird einfacher: Computerwissenschaftler der ETH Zürich haben die erste Programmiersprache entworfen, mit der man Quantencomputer ?hnlich einfach, zuverl?ssig und fehlerfrei programmieren kann wie klassische Computer. ?Die Programmierung von Quantencomputern ist bis heute eine Herausforderung für die Forschung?, sagt ETH-Informatikprofessor Martin Vechev vom Secure, Reliable and Intelligent Systems Lab (SRI), ?umso mehr freut es mich, dass wir nun die Tradition der ETH Zürich in der Entwicklung von Quantencomputern und Programmiersprachen fortsetzen k?nnen.?
?Unsere Quantenprogrammiersprache Silq erlaubt es Programmierenden, die Potenziale der Quantencomputer besser zu nutzen als mit bisherigen Sprachen, da ihre Codes kürzer, schneller und für Programmierende intuitiver und leichter zu verstehen sind?, erl?utert Vechev weiter. An der Programmiersprachenkonferenz PLDI 2020 wird er Silq in dieser Woche externe Seite der Fachwelt vorstellen. Um die Diskussion, Nutzung und Weiterentwicklung zu erm?glichen, haben sein Team und er Silq zudem auf einer eigenen Webseite ver?ffentlicht.
Quantencomputer haben in den letzten zehn Jahren zunehmend an Aufmerksamkeit gewonnen. Schliesslich bergen diese Computer, die nach den Regeln der Quantenphysik funktionieren, ein enormes Potenzial. Die meisten Forschenden sind heute überzeugt, dass sie gewisse Probleme dereinst schneller l?sen k?nnen als klassische Computer, da sie für ihre Berechnungen verschr?nkte Quantenzust?nde nutzen, bei denen sich zu einem bestimmten Zeitpunkt verschiedene Informationen überlagern. Dadurch dürften Quantencomputer in Zukunft auch Probleme effizient l?sen, die klassische Rechner nicht innert nützlicher Frist berechnen k?nnen.
Diese Quantenüberlegenheit ist noch nicht abschliessend bewiesen. In jüngster Zeit sind jedoch wichtige technische Fortschritte erzielt worden: So konnte im Sp?tsommer 2019 erstmals ein Quantencomputer eine – wenn auch sehr spezifische – Aufgabe schneller l?sen als die schnellsten klassischen Computer.
Für gewisse ?Quantenalgorithmen?, also Berechnungsstrategien, ist zudem bekannt, dass sie schneller sind als klassische Algorithmen, die das Potenzial von Quantencomputern nicht ausnutzen. Bis heute lassen sich diese Algorithmen jedoch noch nicht auf bestehender Quantenhardware rechnen, da Quantencomputer aktuell noch zu fehleranf?llig sind.
Wie Programmierende denken
Das Potenzial der Quantencomputer wirklich auszusch?pfen, erfordert nicht nur die neueste Technologie, sondern auch eine Quantenprogrammiersprache, um die Quantenalgorithmen zu beschreiben. Grunds?tzlich stellt ein Algorithmus ein ?Rezept? dar, um ein Problem zu l?sen, und eine Programmiersprache beschreibt den Algorithmus so, dass ein Computer die ben?tigten Berechnungen ausführen kann.
Heute sind Quantenprogrammiersprachen stark an die Hardware angelehnt, das heisst sie beschreiben genau das Verhalten der zugrundeliegenden Schaltkreise. Für Programmiererinnen und Programmierer sind solche ?Hardwarebeschreibungssprachen? umst?ndlich und fehleranf?llig, da man die einzelnen Programmanweisungen sehr detailliert ausformulieren und entsprechend viele Einzelheiten der Implementierung von Quantenalgorithmen explizit ausdrücken muss.
An dieser Stelle setzen Martin Vechev und seine Gruppe mit der Programmiersprache Silq an. ?Silq ist die erste Quantenprogrammiersprache, die sich nicht prim?r an der Bau- und Funktionsweise der Hardware orientiert, sondern an der Denkweise der Programmierenden, die ein Problem l?sen wollen und dafür nicht jedes Detail der Rechnerarchitektur und der Implementierung verstehen müssen?, sagt Benjamin Bichsel, Doktorand in Vechevs Gruppe, der die Entwicklung von Silq betreut.
Computersprachen, die von den technischen Details des jeweiligen Computertyps abstrahieren, bezeichnen Informatikerinnen und Informatiker als h?here Programmiersprachen. Für Quantencomputer ist Silq die erste h?here Programmiersprache überhaupt. H?here Programmiersprachen sind ausdruckst?rker, das heisst sie k?nnen auch komplexe Aufgaben und Algorithmen mit weniger Text (Code) ausdrücken. Das macht sie für Programmiererinnen und Programmierer verst?ndlicher und einfacher in der Verwendung. Zudem kann man sie auf verschiedene Rechnerarchitekturen anwenden.
Fehlerfrei dank automatischer Müllabfuhr
Die wichtigste Neuerung und Erleichterung, die Silq für Quantenprogrammiersprachen einführt, betrifft eine Fehlerquelle, die das Quantenprogrammieren bisher erschwerte: Jeder Computer berechnet eine Aufgabe in mehreren Zwischenschritten. Dabei entstehen Zwischenergebnisse, so genannte tempor?re Werte. Um den Arbeitsspeicher zu entlasten, werden diese Werte bei klassischen Computern automatisch entfernt.
Informatikerinnen und Informatiker sprechen hier von ?Garbage Collection? oder von ?Müllabfuhr?, weil die überflüssigen Zwischenwerte entsorgt werden. Bei Quantencomputern ist diese Entsorgung wegen der Quantenverschr?nkung nicht so einfach: Die früheren Rechenwerte k?nnen mit den aktuellen wechselwirken und die korrekte Berechnung st?ren. Entsprechend erfordert die Bereinigung solcher tempor?rer Werte auf Quantencomputern eine fortgeschrittene Technik, die in der Fachsprache ?uncomputation? genannt wird.
?Silq ist die erste Quantenprogrammiersprache, die nicht mehr ben?tigte Werte automatisch erkennt und entsorgt?, erkl?rt Bichsel. Dafür nutzten die Informatikerinnen und Informatiker ihr Know-how der klassischen Programmiersprachen. Ihre automatische Müllabfuhr, beziehungsweise ihre Methode, wie sie die ?uncomputation? ausführen, verwendet n?mlich nur Programmierbefehle, die frei sind von speziellen Quantenoperationen – sie ist ?qfree?, wie Vechev und Bichsel sagen.
?Silq ist ein wichtiger Durchbruch auf dem Weg zu einer optimalen Programmierung von Quantencomputern, der letzte Entwicklungsschritt ist sie nicht?, sagt Vechev. Noch gibt es viele offene Fragen. Dadurch, dass ?Silq? verst?ndlicher ist, erhoffen sich Vechev und Bichsel sowohl Impulse für die Weiterentwicklung der Quantenprogrammiersprachen als auch für die Lehre und die Entwicklung neuer Quantenalgorithmen.
?Unser Viererteam hat den Durchbruch nach zwei Jahren Arbeit dank der Kombination verschiedener Expertisen in Sprachdesign, Quantenphysik und Implementierung geschafft. Wenn nun andere Forschungs- und Entwicklungsteams unsere Neuerungen aufgriffen, w?re das ein sch?ner Erfolg?, schliesst Bichsel.
Literaturhinweis
Bichsel B, Baader M, Gehr T, Vechev M. Silq: a high-level quantum language with safe uncomputation and intuitive semantics. PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2020, 286–300. doi: externe Seite 10.1145/3385412.3386007
Verwandte Artikel
- chevron_right Quantencomputer und die Zukunft des Berechenbaren (ETH-News 29.08.2019)
- chevron_right Fehlersuche in der Quantenwelt (ETH-News 18.09.2018)
- chevron_right Eine Vision wird Realit?t (ETH Globe Magazin 2/2018)
- chevron_right Mit Quantencomputern komplexe chemische Prozesse aufkl?ren (ETH-News 31.07.2017)