Home » Articole » Articole » Calculatoare » Programare » Limbajul de programare Q# pentru algoritmii cuantici

Limbajul de programare Q# pentru algoritmii cuantici

postat în: Programare 0

Q# (Q diez, pronunțat Q sharp) este un limbaj de programare specific domeniului, utilizat pentru exprimarea algoritmilor cuantici.[3] A fost lansat inițial publicului de Microsoft ca parte a Kitului de Dezvoltare Cuantică.[4]

Q# funcționează împreună cu limbaje clasice precum C#, Python și F# și este conceput pentru a permite utilizarea conceptelor tradiționale de programare în calculul cuantic, inclusiv funcții cu variabile și ramificații, precum și un mediu de dezvoltare evidențiat prin sintaxă cu un depanator cuantic.[1][5][6]

Istoric

Din punct de vedere istoric, Microsoft Research a avut două echipe interesate de calculul cuantic: echipa QuArC cu sediul în Redmond, Washington,[7], condusă de Krysta Svore, care a explorat construcția circuitelor cuantice, și Station Q, inițial situată în Santa Barbara și condusă de Michael Freedman, care a explorat calculul cuantic topologic.[8][9]

În timpul unui discurs Microsoft Ignite Keynote din 26 septembrie 2017, Microsoft a anunțat că va lansa un nou limbaj de programare destinat special computerelor cuantice.[10] Pe 11 decembrie 2017, Microsoft a lansat Q# ca parte a Kitului de Dezvoltare Quantum.[4]

La Build 2019, Microsoft a anunțat că va oferi open-source Kitului de Dezvoltare Quantum, inclusiv compilatoarele și simulatoarele sale Q#.[11]

Pentru a sprijini Q#, Microsoft a dezvoltat Reprezentarea Intermediară Quantum (QIR) în 2023 ca o interfață comună între limbajele de programare și procesoarele cuantice țintă. Compania a anunțat, de asemenea, o extensie de compilare care generează QIR din Q#.[12]

Bettina Heim a condus efortul de dezvoltare a limbajului Q#.[13][14]

Utilizare

Q# este disponibil ca o extensie descărcată separat pentru Visual Studio,[15] dar poate fi rulat și ca un instrument independent din linia de comandă sau din Visual Studio Code. Q# a fost introdus pe Windows și este disponibil pe MacOS și Linux.[16]

Kitul de Dezvoltare Quantum include un simulator cuantic capabil să ruleze Q# și să simuleze 30 de qubiți logici.[17][18]

Pentru a invoca simulatorul cuantic, se utilizează un alt limbaj de programare .NET, de obicei C#, care furnizează datele de intrare (clasice) pentru simulator și citește datele de ieșire (clasice) din simulator.[19]

Caracteristici

O caracteristică principală a Q# este capacitatea de a crea și utiliza qubiți pentru algoritmi. Prin urmare, unele dintre cele mai importante caracteristici ale Q# sunt capacitatea de a înlănțui și de a introduce suprapoziționarea qubiților prin intermediul porților NOT controlate și respectiv al porților Hadamard, precum și al porților Toffoli, Pauli X, Y, Z și multe altele, care sunt utilizate pentru o varietate de operațiuni (vezi porți logice cuantice).[necesită citare]

Stiva hardware care va fi în cele din urmă reunită cu Q# este de așteptat să implementeze qubiți ca qubiți topologici. Simulatorul cuantic livrat astăzi cu Kitul de Dezvoltare Cuantică este capabil să proceseze până la 32 de qubiți pe o mașină a utilizatorului și până la 40 de qubiți pe Azure.[20]

Documentație și resurse

În prezent, resursele disponibile pentru Q# sunt limitate, dar documentația oficială este publicată: Microsoft Developer Network: Q#. Depozitul Microsoft Quantum Github este, de asemenea, o colecție mare de programe eșantion care implementează o varietate de algoritmi cuantici și testele acestora.

Microsoft a găzduit, de asemenea, un concurs de codare cuantică pe Codeforces, numit Microsoft Q# Coding Contest – Codeforces, și a furnizat, de asemenea, materiale conexe pentru a ajuta la răspunsurile la întrebările din postările de pe blog, plus soluțiile detaliate din tutoriale.

Microsoft găzduiește un set de exerciții de învățare pentru a ajuta la învățarea Q# pe GitHub: microsoft/QuantumKatas cu link-uri către resurse și răspunsuri la probleme.

Sintaxă

Q# este înrudit sintactic atât cu C#, cât și cu F#, dar are și unele diferențe semnificative.

Asemănări cu C#

  • Folosește spațiu de nume pentru izolarea codului
  • Toate instrucțiunile se termină cu un ;
  • Acoladele sunt folosite pentru declarațiile de domeniu
  • Comentariile pe o singură linie se fac folosind //
  • Tipurile de date variabile, cum ar fi Int Double String și Bool, sunt similare, deși sunt scrise cu majusculă (iar Int este pe 64 de biți)[21]
  • Qubiții sunt alocați și dispuși în interiorul unui bloc using.
  • Funcțiile Lambda sunt definite folosind operatorul =>.
  • Rezultatele sunt returnate folosind cuvântul cheie return.

Asemănări cu F#

  • Variabilele sunt declarate folosind fie let, fie mutable[3]
  • Funcții de ordinul întâi
  • Module, care sunt importate folosind cuvântul cheie open
  • Tipul de date este declarat după numele variabilei
  • Operatorul de interval ..
  • bucle for … in
  • Fiecare operație/funcție are o valoare returnată, mai degrabă decât void. În loc de void, se returnează un tuplu ()
  • Definiția tipurilor de date de înregistrare (folosind cuvântul cheie newtype, în loc de type).

Diferențe

  • Funcțiile sunt declarate folosind cuvântul cheie function
  • Operațiile pe computerul cuantic sunt declarate folosind cuvântul cheie operation
  • Lipsa comentariilor pe mai multe linii
  • Asertează în loc să arunce excepții
  • Documentația este scrisă în Markdown în loc de etichete de documentație bazate pe XML

Referințe

  1. „Microsoft’s Q# quantum programming language out now in preview”. Ars Technica. 12 Dec 2017. Retrieved 2024-09-04.
  2. „Introduction to Q#” (PDF). University of Washington.
  3. „The Q# Programming Language”. docs.microsoft.com. Retrieved 2017-12-11.
  4. „Announcing the Microsoft Quantum Development Kit”. Retrieved 2017-12-11.
  5. „Microsoft makes play for next wave of computing with quantum computing toolkit”. Ars Technica. 25 Sep 2017. Retrieved 2024-09-04.
  6. „Quantum Computers Barely Exist—Here’s Why We’re Writing Languages for Them Anyway”. MIT Technology Review. 22 Dec 2017. Retrieved 2024-09-04.
  7. „Solving the quantum many-body problem with artificial neural networks”. Microsoft Azure Quantum. 15 February 2017.
  8. Scott Aaronson’s blog, 2013, ‘Microsoft: From QDOS to QMA in less than 35 years’, https://scottaaronson.blog/?p=1471
  9. „What are the Q# programming language & QDK? – Azure Quantum”. learn.microsoft.com. 12 January 2024.
  10. „Microsoft announces quantum computing programming language”. Retrieved 2017-12-14.
  11. „Microsoft is open-sourcing its Quantum Development Kit”. Archived from the original on 2021-01-23. Retrieved 2020-12-12.
  12. Krill, Paul (29 Sep 2020). „Microsoft taps LLVM for quantum computing”. InfoWorld. Retrieved 2024-09-04.
  13. „The Women of QuArC”. 30 March 2019.
  14. „Intro to Q# – Intro to Quantum Software Development”. stem.mitre.org.
  15. „Setting up the Q# development environment”. docs.microsoft.com. Retrieved 2017-12-14.
  16. Coppock, Mark (26 Feb 2018). „Microsoft’s quantum computing language is now available for MacOS”. Digital Trends. Retrieved 2024-09-04.
  17. Akdogan, Erman (23 October 2022). „Quantum computing is coming for finance & crypto”. Medium.
  18. Melanson, Mike (16 Dec 2017). „This Week in Programming: Get Quantum with Q Sharp”. The New Stack. Retrieved 2024-09-04.
  19. „This Week in Programming: Get Quantum with Q Sharp”. The New Stack. 16 December 2017.
  20. „Microsoft previews quantum computing development kit”. CIO. Archived from the original on 2022-10-30. Retrieved 2022-10-30.
  21. „Types in Q# – Microsoft Quantum”. docs.microsoft.com. 27 July 2022.

(Include texte traduse și adaptate din Wikipedia de Nicolae Sfetcu)

Telelucru (Telework)
Telelucru (Telework)

Resursa ideală pentru profesioniști, angajatori și freelanceri care vor să navigheze eficient în era muncii la distanță.

Nu a fost votat 0.00 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Tehnologia Blockchain - Bitcoin
Tehnologia Blockchain – Bitcoin

Transformă-ți perspectiva asupra tehnologiei blockchain și începe să descoperi oportunitățile digitale de mâine!

Nu a fost votat Interval de prețuri: 22.92 lei până la 55.08 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Eseuri filosofice
Eseuri filosofice

Descoperă universul gândirii critice și al reflecției profunde!

Nu a fost votat 22.92 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *