Kvantprogrammering

Kvantprogrammeringsspråk är programmeringsspråk  som tillåter att uttrycka kvantalgoritmer med konstruktioner på hög nivå. Deras mål är inte bara att skapa ett verktyg för programmerare, utan att tillhandahålla ett sätt för forskare att göra det lättare att förstå hur kvantberäkning fungerar .

Befintliga kvantprogrammeringsspråk: QPL [1] [2] , QCL [3] [4] , Haskell-liknande QML [5] , Quipper [6] , Q# [7] , Q [8] , qGCL [8] , cQPL [8] .

Kvantdatorsimuleringsbibliotek (kvantvirtuella maskiner, virtuell kvantmaskin ): en:libquantum , qlib .

Förenkla mjukvaruutveckling för kvantberäkning

IBM har släppt en utvecklarverktygssats som heter Qiskit. Och nästa år lovar IBM att erbjuda verktyg som kommer att göra det enklare för programmerare att skapa mjukvara som innehåller både kvantberäkningar och traditionella beräkningselement i ett och samma program. Sedan, med start 2023, planerar IBM att erbjuda sina kunder bibliotek med förbyggda kvantalgoritmer som programmerare kan använda genom ett enkelt molnbaserat API . Detta kommer att göra det möjligt för kvantdatorprogramvara att utvecklas på programmeringsspråk som redan är kända för utvecklare utan att behöva lära sig ett nytt språk. IBM sa att de vill att företagsprogrammerare ska "kunna utforska kvantberäkningsmodeller på egen hand utan att behöva tänka på kvantfysik." Och senast 2025, enligt IBM, kommer det att kunna erbjuda verktyg för kvantberäkning, med hjälp av vilka programmerare som inte längre behöver tänka på vilken kvantdator (eftersom vissa använder supraledare , andra använder fotoner , och ytterligare andra är byggda på fällor) .för joner ) kommer koden att köras eller till och med vilken del av programmet som kommer att exekveras på ett kvantsystem, och inte på en traditionell server [9] .

QCL-kodexempel

QCL, Quantum computing language  är en av de första implementeringarna av kvantprogrammeringsspråket. Nära C-språket och klassiska datatyper. Låter dig blanda klassisk och kvantkod i en källfil.

Baskvantdatatypen är qureg (kvantregister). Det kan representeras som en array av kvantbitar (kvantbitar).

qreg x1[2]; // två-qubit kvantregister x1 qregx2[2]; // två-qubit kvantregister x2 H(xl); // Hadamard operation på x1 H(x2[1]); // Hadamard-operation på den första qubiten i register x2

Eftersom qcl-tolken använder qlib-simuleringsbiblioteket är det möjligt att observera det interna tillståndet för en kvantdator under exekvering:

qcl>dump  : STATUS: 4 / 32 qubits tilldelade, 28 / 32 qubits gratis 0,35355 |0> + 0,35355 |1> + 0,35355 |2> + 0,35355 |3> + 0,35355 |8> + 0,35355 |9> + 0,35355 |10> + 0,35355 |11>

Anteckningar

  1. Peter Selinger. Matematiska strukturer i datavetenskap . - 2004 Cambridge University Press, 2004. - V. 14, nr. 4. - S. 527-586.
  2. Peter Selinger. Mot ett kvantprogrammeringsspråk . Hämtad 16 mars 2019. Arkiverad från originalet 30 april 2016.
  3. Bernhard Omer. QCL-programmeringsspråket . Hämtad 16 mars 2019. Arkiverad från originalet 8 oktober 2003.
  4. QCL - Ett programmeringsspråk för kvantdatorer . tuwien.ac.at . Hämtad 20 juli 2017. Arkiverad från originalet 8 oktober 2003.
  5. QML: A Functional Quantum Programming Language . Hämtad: 26 september 2007.
  6. Quipper: ett skalbart kvantprogrammeringsspråk Arkiverad 15 januari 2018 på Wayback Machine /PLDI '13 Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation Sidor 333-342
  7. Arkiverad kopia . Hämtad 14 januari 2018. Arkiverad från originalet 14 januari 2018.
  8. ↑ 1 2 3 Quantum Programming Language . Quantiki (6 december 2015). Hämtad 14 januari 2018. Arkiverad från originalet 22 juli 2018.
  9. IBM presenterade en plan för att förenkla utvecklingen av mjukvara för kvantberäkning  (ryska)  ? . ServerNews.ru (8 februari 2021). Hämtad 11 januari 2022. Arkiverad från originalet 22 januari 2022.

Länkar