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
- „Microsoft’s Q# quantum programming language out now in preview”. Ars Technica. 12 Dec 2017. Retrieved 2024-09-04.
- „Introduction to Q#” (PDF). University of Washington.
- „The Q# Programming Language”. docs.microsoft.com. Retrieved 2017-12-11.
- „Announcing the Microsoft Quantum Development Kit”. Retrieved 2017-12-11.
- „Microsoft makes play for next wave of computing with quantum computing toolkit”. Ars Technica. 25 Sep 2017. Retrieved 2024-09-04.
- „Quantum Computers Barely Exist—Here’s Why We’re Writing Languages for Them Anyway”. MIT Technology Review. 22 Dec 2017. Retrieved 2024-09-04.
- „Solving the quantum many-body problem with artificial neural networks”. Microsoft Azure Quantum. 15 February 2017.
- Scott Aaronson’s blog, 2013, ‘Microsoft: From QDOS to QMA in less than 35 years’, https://scottaaronson.blog/?p=1471
- „What are the Q# programming language & QDK? – Azure Quantum”. learn.microsoft.com. 12 January 2024.
- „Microsoft announces quantum computing programming language”. Retrieved 2017-12-14.
- „Microsoft is open-sourcing its Quantum Development Kit”. Archived from the original on 2021-01-23. Retrieved 2020-12-12.
- Krill, Paul (29 Sep 2020). „Microsoft taps LLVM for quantum computing”. InfoWorld. Retrieved 2024-09-04.
- „The Women of QuArC”. 30 March 2019.
- „Intro to Q# – Intro to Quantum Software Development”. stem.mitre.org.
- „Setting up the Q# development environment”. docs.microsoft.com. Retrieved 2017-12-14.
- Coppock, Mark (26 Feb 2018). „Microsoft’s quantum computing language is now available for MacOS”. Digital Trends. Retrieved 2024-09-04.
- Akdogan, Erman (23 October 2022). „Quantum computing is coming for finance & crypto”. Medium.
- Melanson, Mike (16 Dec 2017). „This Week in Programming: Get Quantum with Q Sharp”. The New Stack. Retrieved 2024-09-04.
- „This Week in Programming: Get Quantum with Q Sharp”. The New Stack. 16 December 2017.
- „Microsoft previews quantum computing development kit”. CIO. Archived from the original on 2022-10-30. Retrieved 2022-10-30.
- „Types in Q# – Microsoft Quantum”. docs.microsoft.com. 27 July 2022.
(Include texte traduse și adaptate din Wikipedia de Nicolae Sfetcu)
Descoperă mai multe la MultiMedia
Abonează-te ca să primești ultimele articole prin email.



Lasă un răspuns