Aus dieser Frage ging hervor, dass die wichtigsten Programmiersprachen für Quantencomputer Q # und QISKit sind .
Welche anderen Programmiersprachen stehen für die Programmierung von Quantencomputern zur Verfügung? Gibt es bestimmte Vorteile bei der Auswahl bestimmter?
EDIT: Ich suche Programmiersprachen, keine Emulatoren. Emulatoren simulieren Dinge. Programmiersprachen sind eine Methode zum Schreiben von Anweisungen (entweder für reale Objekte oder für Emulatoren). Es kann eine einzige Sprache geben, die für mehrere Emulatoren funktioniert und umgekehrt.
programming
Pro Q
quelle
quelle
Antworten:
Wikipedia-Liste der Programmiersprachen von Quantum Computer
(Diese Antwort ist keine Kopie dieser Webseite, sie ist aktueller und mit überprüften Links versehen. In einigen Fällen wird der Link zum Artikel oder zur Website des Autors hinzugefügt.)
Quantum Befehlssätze
Quil - Eine Befehlssatzarchitektur für das Quantencomputing, mit der erstmals ein gemeinsames Quanten- / klassisches Speichermodell eingeführt wurde. Siehe auch PyQuil .
OpenQASM - Die von IBM für die Verwendung mit ihrer Quantum Experience eingeführte Zwischendarstellung .
Quantum-Programmiersprachen
Imperative Sprachen
QCL - Eine der ersten implementierten Quantenprogrammiersprachen.
Quantenpseudocode - [Eigentlich keine Sprache, aber eine nette Art, Quantenalgorithmen und -operationen darzustellen.] EH Knill. "Conventions for Quantum Pseudocode", unveröffentlicht, LANL-Bericht LAUR-96-2724 (PDF Source 1 , 2 ), In arXiv nach allen Artikeln suchen, die auf Knills Artikel verweisen.
Q | SI> - Originalarbeit in Chinesisch mit englischer Zusammenfassung. Englische Version bei arXiv: " Q | SI>: A Quantum Programming Environment ".
Q language - Software für die Q-Sprache .
qGCL - " Wechsel in der Quantenprogrammierung: Von der Überlagerung von Daten zur Überlagerung von Programmen ".
QMASM - Spezifisch für D-Wave-Systeme. QMASM-Dokumentation . Autor Scott Pakins edif2qmasm- und QMASM- Webseite bei LANL.
Funktionssprachen
QFC und QPL - Website des Autors .
QML - Hauptseite : http://sneezy.cs.nott.ac.uk/QML/ (antwortet nicht, einen Monat später), Archive.Org-Kopie von sneezy.cs.nott.ac.uk , Dissertation des Autors: " Eine funktionale Quantenprogrammiersprache "(PDF).
LIQUi |> - Erweiterung auf F # (F Sharp).
Quanten-Lambda-Kalkül - Wikipedia listet einige Versionen auf .
Quipper - Eine auf Haskell basierende skalierbare funktionale Programmiersprache für das Quantencomputing. Siehe auch Proto-Quipper . Ein Vortrag von Peter Selinger (FSCD 2018) mit dem Titel " Challenges in Quantum Programming Languages " ( .PDF ) diskutiert diese Sprachen.
Multi-Paradigma-Sprachen
Q # (Q Sharp) - Eine domänenspezifische Programmiersprache zum Ausdrücken von Quantenalgorithmen. Es wurde ursprünglich von Microsoft als Teil des Quantum Development Kit für die Öffentlichkeit freigegeben. Ebenfalls erhältlich ist Microsoft Quantum Katas , eine Reihe von Selbstlernprogrammen, die gleichzeitig Elemente des Quantencomputers und der Q # -Programmierung vermitteln sollen.
Strawberry Fields (von XanduAI ) ist eine Full-Stack-Python-Bibliothek zum Entwerfen, Simulieren und Optimieren von kontinuierlichen variablen quantenoptischen Schaltkreisen.
Die Website Quantum Computing Report enthält eine Tools-Webseite mit über einem Dutzend Links, von denen einige neu sind und einige die obige Liste wiederholen.
Siehe auch die Webseite von QuanTiki: " Liste der QC-Simulatoren " für eine große Liste von Simulatoren und Programmiersprachen auf der Basis von: C / C ++, CaML, OCaml, F # sowie GUI-basiert, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Schema / Haskell / LISP / ML und andere Online-Dienste, die Taschenrechner, Compiler, Simulatoren und Toolkits usw. bereitstellen.
Wenn Sie vorhaben, einen bestimmten Quantencomputer zu verwenden, würde man hoffen, dass die vom Hersteller entwickelte Programmiersprache sowohl für diese bestimmte Maschine am besten geeignet ist als auch gut unterstützt wird.
Wenn Sie eine Sprache mit einer größeren Anzahl von Anhängern auswählen, stehen mehr Foren zur Verfügung und hoffentlich mehr Fehlerbehebungen und Support.
Leider gibt es einige großartige Nischenprodukte, für die es schwierig ist, eine Nutzerbasis zu gewinnen. Der Versuch, eine Sprache zu finden, die sowohl aussagekräftig als auch ausdrucksstark ist und auf verschiedenen Plattformen unterstützt wird, ist der Trick. Die Antwort ist ein Meinungsautomaten.
Eine Evaluierung von vier Softwareplattformen: Forest (pyQuil), QISKit, ProjectQ und das Quantum Developer Kit wird von Ryan LaRose in " Überblick und Vergleich von Quantum-Softwareplattformen auf Gate-Ebene " (6. Juli 2018) angeboten.
Aktualisierung:
Googles Cirq und OpenFermion-Cirq: " Googles AI-Blog - Ankündigung von Cirq: Ein Open Source-Framework für NISQ-Algorithmen ".
Das Leap and Ocean SDK von D-Wave ermöglicht den Zugriff auf ein D-Wave 2000Q ™ -System in einer Cloud-Umgebung mit Zugriff auf eine Qubit-Quantenglühmaschine über 2000, um Workloads kostenlos zu testen und auszuführen, vorausgesetzt, die verwendeten Kernalgorithmen fließen in den Open Source-Pool ein . Bewerben Sie sich, um sich auf der Leap In- Webseite von D-Wave anzumelden.
Der Quantum Cloud Service (QCS) von Rigetti Computing bietet ein Quantum Machine Image, eine virtualisierte Programmier- und Ausführungsumgebung, die mit Forest 2.0 vorkonfiguriert ist, um auf bis zu 16 Qubits eines 128-Qubit-Computers zuzugreifen.
Informieren Sie sich über Fujitsus Digital Annealer , eine Architektur, die Berechnungen rund 10.000-mal schneller als ein herkömmlicher Computer durchführt. Wenn sie irgendwann eine Entwicklungsumgebung bereitstellen, die mit echten Quantencomputern kompatibel ist, bleiben diese beiden Absätze in dieser Antwort erhalten, ansonsten werde ich sie entfernen.
Obwohl der Siliziumchip nicht quantenbasiert ist, hat Fujitsu in Zusammenarbeit mit 1Qbit einen so genannten " Quantum Inspired AI Cloud Service " entwickelt. Dabei spielt es keine Rolle , ob der Digital Annealer wie eine Ente quakt (annealt wie eine D-Wave und verwendet kompatiblen Code). bleibt abzuwarten. Besuchen Sie hier, um auf den technischen Service von Fujitsu Digital Annealer zuzugreifen .
Der QWIRE ( Chor ) der University of Pennsylvania ist ein Tool für die Quantenschaltungssprache und formale Verifizierung. Es verfügt über eine GitHub-Webseite .
Eine Übersicht über: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra und Aqua, Qiskit Tutorials und Qiskit.js, Qrack, Quantennebel, Quantum ++, Qubiter, Quirk, Referenz-qvm, ScaffCC, Strawberry Fields, XACC und schließlich XACC VQE werden im Artikel " Open Source Software im Quantencomputing " (21. Dezember 2018) von Mark Fingerhuth angeboten. Tomáš Babej und Peter Wittek.
Ich werde von Zeit zu Zeit auf diese Antwort zurückkommen, um Aktualisierungen vorzunehmen, ohne übermäßig zu stoßen .
quelle
Hardwarehersteller von Gate-Modellen haben ihre eigenen Basissprachen entwickelt:
Diese haben höhere Python-SDKs zur Verfügung:
Rigetti packt ihre Sprache auch in eine übergeordnete Bibliothek, um vorgefertigte Anwendungen namens Grove aufzurufen .
Microsoft hat Q # so entwickelt , dass es mit dem vorhandenen Simulator und eventuell der physischen Hardware kompatibel ist.
Da die oben genannten Sprachen herstellerspezifisch sind, besteht der Hauptvorteil darin, dass Sie Quantenprogramme auf ihren Computern ausführen können.
Außerhalb der herstellerspezifischen Sprachen befindet sich Scaffold , das von Forschern aus Princeton entwickelt wird. Diese Sprache ist interessant, da sie eine Toolchain zur Analyse der Programme enthält, um Kosten, Leistungspotenzial und Skalierbarkeitspotenzial zu bestimmen.
Bearbeiten: Project Q ist ein weiteres Framework, mit dem Sie mithilfe von Python Programme entwickeln können, die auf einem mitgelieferten Simulator ausgeführt werden können.
Oak Ridge National Labs hat mit der Arbeit an einem Projekt namens XACC begonnen, das herstellerspezifischen Code abstrahieren soll, um Benutzern den Zugriff auf die verschiedenen Hardwareplattformen zu ermöglichen, ohne Code in jeder herstellerspezifischen Sprache zu duplizieren.
quelle
Oder schauen Sie sich Quipper an , eine funktionierende Quantum-Programmiersprache. Mit monadischer Semantik, integrierter Funktionalität für reversible Quantenberechnung, hierarchische Schaltungsunterstützung und mehr! Wird auch in der Praxis verwendet - für einen Algorithmus zur Berechnung der Lösung der Dirac-Gleichung von LaFlamme.
quelle
Ich würde IBM Composer einschließen. Es fühlt sich nicht nach Programmieren an, da Sie nicht alle Fehler und Funktionen kennen, sondern Ihre Anweisungen auf Gates eindeutig in QASM konvertieren und auf einem echten IBM-Simulator oder einem echten IBM-Quantencomputer ausführen (Sie haben die Wahl) der Benutzer).
quelle
Leider ist die Liste auf Quantiki ziemlich alt und nicht gut gepflegt. Selbst die Auflistung aller Quantenprogrammiersprachen in einer einzigen Antwort auf diese Frage ist nicht nachhaltig, da sich die Quantenlandschaft ständig weiterentwickelt. Zum Beispiel hat Google gerade Cirq herausgebracht , ein neues Quantenprogrammierungs-Framework für NISQ-Computer (Noisy Intermediate Scale Quantum), das in keiner der oben genannten Antworten enthalten ist, da es erst vor einigen Tagen angekündigt wurde.
Um dieses Problem zu lösen und um eine weitere Frage zu QC StackExchange zu beantworten, habe ich eine kuratierte Liste von Open-Source-Softwareprojekten auf GitHub erstellt, die auch einen umfassenden Überblick über aktiv entwickelte Quantenprogrammiersprachen und Frameworks enthält. Die Liste wird von der Community aktiv gepflegt und wir fügen ständig neue Projekte hinzu.
quelle