Dari pertanyaan ini, saya mengumpulkan bahwa bahasa pemrograman komputasi kuantum utama adalah Q # dan QISKit .
Apa bahasa pemrograman lain yang tersedia untuk pemrograman komputer kuantum? Apakah ada manfaat tertentu untuk memilih yang tertentu?
EDIT: Saya mencari bahasa pemrograman, bukan emulator. Emulator mensimulasikan banyak hal. Bahasa pemrograman adalah metode penulisan instruksi (baik untuk objek nyata atau untuk emulator). Mungkin ada satu bahasa yang berfungsi untuk banyak emulator dan sebaliknya.
programming
Pro Q
sumber
sumber
Jawaban:
Daftar Wikipedia bahasa pemrograman Quantum Computer
(Jawaban ini bukan salinan halaman web itu, itu lebih diperbarui dan dengan tautan yang diverifikasi. Dalam beberapa kasus, makalah atau tautan situs web penulis ditambahkan.)
Set instruksi kuantum
Quil - Suatu arsitektur set instruksi untuk komputasi kuantum yang pertama kali memperkenalkan model memori kuantum / klasik bersama. Lihat juga PyQuil .
OpenQASM - Representasi perantara yang diperkenalkan oleh IBM untuk digunakan dengan Pengalaman Quantum mereka .
Bahasa pemrograman kuantum
Bahasa imperatif
QCL - Salah satu bahasa pemrograman kuantum pertama yang diimplementasikan.
Pseudocode kuantum - [Sebenarnya bukan bahasa, tetapi cara yang baik untuk merepresentasikan algoritma dan operasi kuantum.] EH Knill. "Konvensi untuk Quantum Pseudocode", tidak dipublikasikan, laporan LANL LAUR-96-2724 (Sumber PDF 1 , 2 ), Cari di arXiv untuk semua makalah yang merujuk kertas Knill.
Q | SI> - Kertas asli dalam bahasa Cina dengan abstrak bahasa Inggris. Versi bahasa Inggris di arXiv: " Q | SI>: A Quantum Programming Environment ".
Bahasa Q - Software untuk bahasa Q .
qGCL - " Alternatif dalam Pemrograman Quantum: Dari Superposisi Data ke Superposisi Program ".
QMASM - Khusus untuk sistem D-Wave. Dokumentasi QMASM . Edif2qmasm dan halaman web QMASM penulis Scott Pakindi LANL.
Bahasa fungsional
QFC dan QPL - situs web penulis .
QML - Situs utama: http://sneezy.cs.nott.ac.uk/QML/ (tidak merespons, sebulan kemudian), Archive.Org salinan sneezy.cs.nott.ac.uk , tesis PhD penulis: " Bahasa pemrograman kuantum fungsional "(PDF).
LIQUi |> - Ekstensi ke F # (F Sharp).
Kalkulus Quantum lambda - Wikipedia mencantumkan beberapa versi .
Quipper - Bahasa pemrograman fungsional terukur berbasis Haskell untuk komputasi kuantum. Lihat juga Proto-Quipper . Ceramah oleh Peter Selinger (FSCD 2018) berjudul " Tantangan dalam Bahasa Pemrograman Quantum " ( .PDF ) membahas bahasa-bahasa ini.
Bahasa multi-paradigma
Q # (Q Sharp) - Bahasa pemrograman khusus domain yang digunakan untuk mengekspresikan algoritma kuantum. Awalnya dirilis ke publik oleh Microsoft sebagai bagian dari Quantum Development Kit. Juga tersedia Microsoft Quantum Katas , serangkaian tutorial serba otomatis yang ditujukan untuk mengajarkan elemen komputasi kuantum dan pemrograman Q # pada saat bersamaan.
Strawberry Fields (dari XanduAI ) adalah pustaka Python tumpukan penuh untuk merancang, mensimulasikan, dan mengoptimalkan rangkaian optik kuantum variabel kontinu.
Laporan Komputasi situs web Quantum memiliki daftar laman web Alat pada lebih dari selusin tautan, beberapa baru dan beberapa mengulangi daftar di atas.
Lihat juga halaman web QuanTiki: " Daftar simulator QC ", untuk daftar besar simulator dan bahasa pemrograman berdasarkan: C / C ++, CaML, OCaml, F #, bersama dengan berbasis GUI, Jawa, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Oktaf, .NET, Perl / PHP, Python, Skema / Haskell / LISP / ML dan layanan online lainnya yang menyediakan kalkulator, kompiler, simulator, dan toolkit, dll.
Jika Anda berencana untuk menggunakan komputer kuantum tertentu maka orang akan berharap bahwa bahasa pemrograman yang dikembangkan oleh pabrikan keduanya paling cocok untuk mesin tertentu dan didukung dengan baik.
Memilih bahasa dengan pengikut yang lebih besar berarti ada lebih banyak Forum yang tersedia dan mudah-mudahan lebih banyak perbaikan dan dukungan bug.
Sayangnya, itu membuat beberapa produk niche hebat berjuang untuk mendapatkan basis pengguna. Mencoba menemukan satu bahasa yang kuat / ekspresif dan didukung di berbagai platform adalah triknya, jawabannya adalah opini ATM.
Evaluasi empat platform perangkat lunak: Hutan (pyQuil), QISKit, ProjectQ, dan Quantum Developer Kit ditawarkan oleh Ryan LaRose dalam " Gambaran Umum dan Perbandingan Platform Perangkat Lunak Kuantum Gerbang Level " (6 Jul 2018).
Pembaruan:
Cirq dan OpenFermion-Cirq Google : " Blog AI Google - Mengumumkan Cirq: Kerangka Sumber Terbuka untuk Algoritma NISQ ".
D-Wave Leap dan Samudera SDK memungkinkan akses ke D-Wave 2000Q ™ Sistem dalam lingkungan awan dengan akses ke 2000 + qubit mesin anil kuantum untuk menguji dan menjalankan beban kerja secara gratis, dengan asumsi algoritma inti yang digunakan go ke dalam kolam open source . Berlaku untuk masuk di halaman web D-Wave's Leap In .
Quantum Cloud Service (QCS) Rigetti Computing menawarkan Quantum Machine Image, pemrograman virtual, dan lingkungan eksekusi yang telah dikonfigurasikan sebelumnya dengan Forest 2.0, untuk mengakses hingga 16 qubit dari komputer 128 qubit.
Nantikan informasi tentang Digital Annealer Fujitsu , arsitektur yang mampu melakukan komputasi sekitar 10.000 kali lebih cepat daripada komputer konvensional. Jika mereka pada akhirnya menyediakan lingkungan pengembangan yang kompatibel lintas dengan komputer kuantum sejati , kedua paragraf ini akan tetap berada dalam jawaban ini, jika tidak saya akan menghapusnya.
Sementara chip silikon mereka tidak bersifat kuantum, Fujitsu telah bermitra dengan 1Qbit untuk mengembangkan apa yang digambarkan sebagai " Layanan Cloud AI Quantum Terinspirasi ", baik Digital Annealer mereka berdengung seperti bebek (anil seperti D-Wave, dan menggunakan kode yang kompatibel) masih harus dilihat. Kunjungi di sini untuk mengakses Layanan Teknis Fujitsu Digital Annealer .
QWIRE ( paduan suara ) Universitas Pennsylvania adalah bahasa sirkuit kuantum dan alat verifikasi formal, ia memiliki halaman web GitHub .
Ulasan dari: Cirq, Cliffords.jl, dimod, sistem dwave, FermiLib, Hutan (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Terra dan Aqua Qiskit, Aqua dan Tutorial Qiskit, dan Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, referensi-qvm, ScaffCC, Strawberry Fields, XACC, dan akhirnya XACC VQE ditawarkan di koran: " Perangkat lunak sumber terbuka dalam komputasi kuantum " (21 Desember 2018), oleh Mark Fingerhuth, Tomáš Babej, dan Peter Wittek.
Saya akan kembali ke jawaban ini dari waktu ke waktu untuk membuat pembaruan, tanpa benturan yang berlebihan .
sumber
Vendor perangkat keras model Gate telah membangun bahasa tingkat rendah mereka sendiri:
Ini memiliki tingkat python sdk yang lebih tinggi yang tersedia:
Rigetti juga membungkus bahasa mereka di perpustakaan tingkat yang lebih tinggi untuk memanggil aplikasi pra-dibangun yang disebut Grove .
Microsoft telah mengembangkan Q # untuk menjalankan melawan simulator yang ada, dan akhirnya perangkat keras fisik mereka.
Karena bahasa di atas adalah khusus vendor, manfaat utama adalah Anda dapat menjalankan program kuantum di komputer mereka.
Di luar bahasa khusus vendor adalah Scaffold yang sedang dikembangkan oleh para peneliti Princeton. Bahasa ini menarik karena mencakup rantai alat untuk menganalisis program untuk menentukan biaya, potensi kinerja, dan potensi skalabilitas.
Sunting: Project Q adalah kerangka kerja lain yang memungkinkan Anda untuk mengembangkan program menggunakan Python yang dapat berjalan pada simulator yang disertakan.
Oak Ridge National Labs telah mulai bekerja pada proyek yang disebut XACC yang dimaksudkan untuk abstrak kode khusus vendor untuk memungkinkan pengguna mengakses berbagai platform perangkat keras tanpa menduplikasi kode dalam setiap bahasa spesifik vendor.
sumber
Atau bahkan lihat Quipper , bahasa pemrograman Quantum yang fungsional. Dengan semantik monadik, fungsionalitas bawaan untuk komputasi kuantum yang dapat dibalik, dukungan rangkaian hierarkis, dan banyak lagi! Digunakan dalam praktik sebenarnya juga - untuk algoritma untuk menghitung solusi persamaan Dirac oleh LaFlamme.
sumber
Saya akan memasukkan Komposer IBM. Rasanya tidak seperti pemrograman karena Anda tidak mendapatkan semua bug, kesalahan, dan fungsionalitas, tetapi itu jelas mengubah instruksi Anda pada gerbang menjadi QASM dan menjalankannya pada simulator IBM nyata, atau komputer kuantum IBM nyata (pilihannya adalah pengguna).
sumber
Sayangnya, daftar di Quantiki cukup lama dan tidak terawat dengan baik. Bahkan daftar semua bahasa pemrograman kuantum dalam satu jawaban untuk pertanyaan ini tidak berkelanjutan karena lanskap kuantum terus berkembang. Misalnya, Google baru saja merilis Cirq , kerangka kerja pemrograman kuantum baru untuk komputer Noisy Intermediate Scale Quantum (NISQ) yang tidak ditampilkan dalam balasan di atas karena diumumkan hanya beberapa hari yang lalu.
Untuk mengatasi masalah ini dan sebagai tanggapan terhadap pertanyaan lain tentang QC StackExchange, saya memulai daftar proyek perangkat lunak sumber terbuka di GitHub yang juga mencakup tinjauan komprehensif tentang bahasa dan kerangka kerja pemrograman kuantum yang dikembangkan secara aktif. Daftar ini dikelola secara aktif oleh komunitas dan kami terus menambahkan proyek baru.
sumber