Forscher entwickeln Programmiersprache für Quantencomputer
Zwar ist man heute trotz enormer Fortschritte in der Forschung noch weit davon entfernt, kommerziell nutzbare Quantencomputer zu bauen, doch bieten sich schon jetzt Ansatzpunkte, um eine entsprechende Programmiersprache zu nutzen. Dabei müsse die Sprache mächtig genug sein, um alle validen Quantenalgorithmen auszudrücken und sich in klassische Programmiersprachen einbetten zu lassen. Zudem müsse es eine Trennung zwischen der klassischen Programmierung und der Quantenprogrammierung geben, so die Forscher. Vor allem aber muss die Sprache Hardware-unabhängig sein, d.h nicht an eine aktuelle Implementierung eines Quantencomputers gebunden sein, um so durch einfaches Rekompilieren den gleichen Code auf verschiedenen Quanten-Architekturen einzusetzen.
Dabei stützen sich die drei Wissenschaftler auf das QRAM-Modell, das den Quantencomputer als Erweiterung einer klassischen "Random Access Machine" (Slave) betrachtet, auf die von einem Master auf Basis klassischer Hard- und Software zugegriffen wird. Dabei müssen die Quanten-Ressourcen nicht notwendigerweise lokal vorgehalten werden, sondern können zwischen verschiedenen QRAM-Rechnern geteilt werden.
Die Programmiersprache muss sich dabei Problemen stellen, die aus der grundlegenden Struktur von Quantenrechnern resultieren. So ist beispielsweise ein Klonen nicht möglich, also das Replizieren des Zustandes eines Quantensystems. Aufrufe können also nicht mit "Call-by-Value" erfolgen, da diese in der Regel eine Kopie anlegen. Um diesem Problem zu begegnen, führt man das Konstrukt eines Quantenregisters in die Sprache ein.
Derzeit arbeitet man noch an einer Implementierung der Sprache auf Basis von C++, die derzeit als Prototyp vorliegt. Damit wird es unter anderem möglich, die Effizienz verschiedener High-Level-Vereinfachungen und Optimierungsroutinen zu testen. Zudem lässt sich so die Effizienz unterschiedlicher Umsetzungen von High-Level zu Low-Level sowie Hardware-abhängige zu Hardware-unabhängigen Übersetzungen prüfen. Aber auch die Effizienz unterschiedlicher Hardware-Plattformen kann so getestet werden.
Schließlich ergibt das ein High-Level-Interface, um verschiedene Algorithmen in Simulatoren zu testen sowie Quantencomputer zu programmieren, sofern diese nutzbar sind.



