Programare cuantică

Limbile de programare cuantică  sunt limbaje de programare care permit exprimarea algoritmilor cuantici folosind constructe de nivel înalt. Scopul lor nu este doar de a crea un instrument pentru programatori, ci de a oferi cercetătorilor un mijloc de a facilita înțelegerea modului în care funcționează calculul cuantic .

Limbaje de programare cuantică existente: QPL [1] [2] , QCL [3] [4] , Haskell-like QML [5] , Quipper [6] , Q# [7] , Q [8] , qGCL [8] , cQPL [8] .

Biblioteci de simulare computerizată cuantică (mașini virtuale cuantice, mașină virtuală cuantică ): en:libquantum , qlib .

Simplificarea dezvoltării software pentru calculul cuantic

IBM a lansat un set de instrumente pentru dezvoltatori numit Qiskit. Iar anul viitor, IBM promite să ofere instrumente care vor facilita programatorilor să creeze software care să includă atât calculul cuantic, cât și elementele de calcul tradiționale într-un singur program. Apoi, începând cu 2023, IBM intenționează să ofere clienților săi biblioteci de algoritmi cuantici pre-construiți pe care programatorii le pot folosi printr-un simplu API bazat pe cloud . Acest lucru va permite ca software-ul de calculator cuantic să fie dezvoltat în limbaje de programare deja cunoscute dezvoltatorilor, fără a fi nevoie să învețe un nou limbaj. IBM a spus că dorește ca programatorii corporativi „să poată explora singuri modele de calcul cuantic, fără a trebui să se gândească la fizica cuantică”. Și până în 2025, conform IBM, va putea oferi instrumente pentru calculul cuantic, folosindu-se programatorii care nu vor mai trebui să se gândească la ce computer cuantic (pentru că unii folosesc supraconductori , alții folosesc fotoni , iar alții sunt construiti pe capcane) .pentru ioni ) codul va rula sau chiar care parte a programului va fi executată pe un sistem cuantic, și nu pe un server tradițional [9] .

Exemplu de cod QCL

QCL, limbajul de calcul cuantic  este una dintre primele implementări ale limbajului de programare cuantică. Aproape de limbajul C și de tipurile de date clasice. Vă permite să amestecați codul clasic și cuantic într-un singur fișier sursă.

Tipul de date cuantice de bază este qureg (registru cuantic). Poate fi reprezentat ca o matrice de qubiți (biți cuantici).

qreg x1[2]; // registru cuantic de doi qubiți x1 qregx2[2]; // registru cuantic de doi qubiți x2 H(x1); // Operație Hadamard pe x1 H(x2[1]); // Operație Hadamard pe primul qubit al registrului x2

Deoarece interpretul qcl folosește biblioteca de simulare qlib, este posibil să se observe starea internă a unui computer cuantic în timpul execuției:

qcl>dump  : STARE: 4 / 32 de qubiți alocați, 28 / 32 de qubiți liberi 0,35355 |0> + 0,35355 |1> + 0,35355 |2> + 0,35355 |3> + 0,35355 |8> + 0,35355 |9> + 0,35355 |10> + 0,35355 |11>

Note

  1. Peter Selinger. Structuri matematice în informatică . - 2004 Cambridge University Press, 2004. - V. 14, nr. 4. - S. 527-586.
  2. Peter Selinger. Spre un limbaj de programare cuantică . Preluat la 16 martie 2019. Arhivat din original la 30 aprilie 2016.
  3. Bernhard Omer. Limbajul de programare QCL . Preluat la 16 martie 2019. Arhivat din original la 8 octombrie 2003.
  4. QCL - Un limbaj de programare pentru calculatoare cuantice . tuwien.ac.at . Preluat la 20 iulie 2017. Arhivat din original la 8 octombrie 2003.
  5. QML: Un limbaj de programare cuantic funcțional . Preluat: 26 septembrie 2007.
  6. Quipper: un limbaj de programare cuantic scalabil Arhivat 15 ianuarie 2018 la Wayback Machine /PLDI '13 Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation Pagini 333-342
  7. Copie arhivată . Consultat la 14 ianuarie 2018. Arhivat din original la 14 ianuarie 2018.
  8. ↑ 1 2 3 Limbajul de programare cuantic . Quantiki (6 decembrie 2015). Preluat la 14 ianuarie 2018. Arhivat din original la 22 iulie 2018.
  9. IBM a prezentat un plan de simplificare a dezvoltării de software pentru calculul cuantic  (rusă)  ? . ServerNews.ru (8 februarie 2021). Preluat la 11 ianuarie 2022. Arhivat din original la 22 ianuarie 2022.

Link -uri