क्वांटम प्रोग्रामिंग: Difference between revisions
Line 21: | Line 21: | ||
=== ब्लैकबर्ड === | === ब्लैकबर्ड === | ||
ब्लैकबर्ड<ref>{{Cite web|url=https://quantum-blackbird.readthedocs.io/en/latest/|title=Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation|website=quantum-blackbird.readthedocs.io|access-date=2019-06-24}}</ref><ref>{{Cite journal|last1=Weedbrook|first1=Christian|last2=Amy|first2=Matthew|last3=Bergholm|first3=Ville|last4=Quesada|first4=Nicolás|last5=Izaac|first5=Josh|last6=Killoran|first6=Nathan|date=2019-03-11|title=Strawberry Fields: A Software Platform for Photonic Quantum Computing|journal=Quantum|language=en-GB|volume=3|pages=129|doi=10.22331/q-2019-03-11-129|arxiv=1804.03159|bibcode=2019Quant...3..129K |s2cid=54763305}}</ref> एक क्वांटम इंस्ट्रक्शन सेट और मध्यवर्ती प्रतिनिधित्व है जिसका उपयोग [[Xanadu क्वांटम टेक्नोलॉजीज|ज़ानाडू क्वांटम टेक्नोलॉजीज]] और स्ट्रॉबेरी फील्ड्स द्वारा किया जाता है। | ब्लैकबर्ड<ref>{{Cite web|url=https://quantum-blackbird.readthedocs.io/en/latest/|title=Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation|website=quantum-blackbird.readthedocs.io|access-date=2019-06-24}}</ref><ref>{{Cite journal|last1=Weedbrook|first1=Christian|last2=Amy|first2=Matthew|last3=Bergholm|first3=Ville|last4=Quesada|first4=Nicolás|last5=Izaac|first5=Josh|last6=Killoran|first6=Nathan|date=2019-03-11|title=Strawberry Fields: A Software Platform for Photonic Quantum Computing|journal=Quantum|language=en-GB|volume=3|pages=129|doi=10.22331/q-2019-03-11-129|arxiv=1804.03159|bibcode=2019Quant...3..129K |s2cid=54763305}}</ref> एक क्वांटम इंस्ट्रक्शन सेट और मध्यवर्ती प्रतिनिधित्व है जिसका उपयोग [[Xanadu क्वांटम टेक्नोलॉजीज|ज़ानाडू क्वांटम टेक्नोलॉजीज]] और स्ट्रॉबेरी फील्ड्स द्वारा किया जाता है। इसे [[निरंतर-परिवर्तनीय क्वांटम जानकारी|निरंतर-परिवर्तनीय क्वांटम प्रोग्राम]] का प्रतिनिधित्व करने के लिए डिज़ाइन किया गया है जो फोटोनिक क्वांटम हार्डवेयर पर चल सकता है। | ||
== क्वांटम [[ सॉफ़्टवेयर विकास किट ]] == | == क्वांटम [[ सॉफ़्टवेयर विकास किट ]] == |
Revision as of 14:24, 22 May 2023
क्वांटम प्रोग्रामिंग निर्देशों के अनुक्रमों को कोडांतरण करने की प्रक्रिया है, जिसे क्वांटम सर्किट कहा जाता है, जो क्वांटम कम्प्यूटिंग पर चलने में सक्षम हैं। क्वांटम प्रोग्रामिंग भाषा उच्च-स्तरीय निर्माणों का उपयोग करके क्वांटम एल्गोरिथ्म को व्यक्त करने में मदद करती हैं।[1] यह क्षेत्र खुला स्त्रोत तत्वज्ञान में गहराई से निहित है और इसके परिणामस्वरूप इस लेख में चर्चा किए गए अधिकांश क्वांटम सॉफ्टवेयर खुला स्रोत सॉफ्टवेयर के रूप में स्वतंत्र रूप से उपलब्ध हैं।[2]
क्वांटम निर्देश सेट
क्वांटम इंस्ट्रक्शन सेट का उपयोग उच्च स्तरीय एल्गोरिदम को भौतिक निर्देशों में बदलने के लिए किया जाता है जिसे क्वांटम प्रोसेसर पर निष्पादित किया जा सकता है। कभी-कभी ये निर्देश किसी दिए गए हार्डवेयर प्लेटफॉर्म के लिए विशिष्ट होते हैं, उदा आयन जाल या सुपरकंडक्टिंग क्वांटम कंप्यूटिंग।
कक़स्म
कक़स्म,[3] सामान्य क्यूएएसएम के रूप में भी जाना जाता है, एक हार्डवेयर-अज्ञेय क्वांटम असेंबली भाषा है जो सभी क्वांटम संकलन और सिमुलेशन टूल के बीच अंतर की गारंटी देती है। इसे डेल्फ़्ट यूनिवर्सिटी ऑफ़ टेक्नोलॉजी में क्यूसीए लैब द्वारा पेश किया गया था।
कुंजी
क्वांटम कंप्यूटिंग के लिए क्विल (निर्देश सेट आर्किटेक्चर) है जिसने सबसे पहले एक साझा क्वांटम/क्लासिकल मेमोरी प्रतिरूप पेश किया। इसे ए प्रैक्टिकल क्वांटम इंस्ट्रक्शन सेट आर्किटेक्चर में रॉबर्ट स्मिथ, माइकल कर्टिस और विलियम ज़ेंग द्वारा पेश किया गया था।[4] कई क्वांटम एल्गोरिदम (क्वांटम टेलीपोर्टेशन, क्वांटम त्रुटि सुधार, सतत अनुकरण,[5][6] और अनुकूलन एल्गोरिदम [7]सहित) को एक साझा मेमोरी आर्किटेक्चर की आवश्यकता होती है।
खुला क्यूएएसएम
खुला क्यूएएसएम[8] आईबीएम द्वारा क्यूसकिट और आईबीएम क्यू एक्सपीरियंस के साथ उपयोग के लिए पेश किया गया मध्यवर्ती प्रतिनिधित्व है।
ब्लैकबर्ड
ब्लैकबर्ड[9][10] एक क्वांटम इंस्ट्रक्शन सेट और मध्यवर्ती प्रतिनिधित्व है जिसका उपयोग ज़ानाडू क्वांटम टेक्नोलॉजीज और स्ट्रॉबेरी फील्ड्स द्वारा किया जाता है। इसे निरंतर-परिवर्तनीय क्वांटम प्रोग्राम का प्रतिनिधित्व करने के लिए डिज़ाइन किया गया है जो फोटोनिक क्वांटम हार्डवेयर पर चल सकता है।
क्वांटम सॉफ़्टवेयर विकास किट
क्वांटम सॉफ्टवेयर डेवलपमेंट किट क्वांटम प्रोग्राम बनाने और हेरफेर करने के लिए उपकरणों का संग्रह प्रदान करते हैं।[11] वे क्वांटम कार्यक्रमों का अनुकरण करने के साधन भी प्रदान करते हैं या उन्हें क्लाउड-आधारित क्वांटम कंप्यूटिंग | क्लाउड-आधारित क्वांटम उपकरणों और स्व-होस्ट किए गए क्वांटम उपकरणों का उपयोग करके चलाने के लिए तैयार करते हैं।
क्वांटम प्रोसेसर तक पहुंच के साथ एसडीके
प्रोटोटाइप क्वांटम उपकरणों के साथ-साथ सिमुलेटर पर क्वांटम सर्किट चलाने के लिए निम्नलिखित सॉफ़्टवेयर डेवलपमेंट किट का उपयोग किया जा सकता है।
परसेवल
द्वारा बनाया गया एक ओपन-सोर्स प्रोजेक्ट है Quandela पायथन (प्रोग्रामिंग लैंग्वेज) पर आधारित फोटोनिक क्वांटम सर्किट डिजाइन करने और क्वांटम एल्गोरिदम विकसित करने के लिए। सिमुलेशन या तो उपयोगकर्ता के अपने कंप्यूटर पर या क्लाउड कम्प्यूटिंग पर चलाए जाते हैं। Perceval का उपयोग Quandela के क्लाउड-आधारित क्वांटम प्रोसेसर की सूची से कनेक्ट करने के लिए भी किया जाता है।[12][13]
महासागर
डी-वेव द्वारा विकसित उपकरणों का एक ओपन सोर्स सूट। ज्यादातर पायथन प्रोग्रामिंग भाषा में लिखा गया है, यह उपयोगकर्ताओं को ईज़िंग मॉडल और क्वाड्रैटिक अनकंस्ट्रेन्ड बाइनरी ऑप्टिमाइज़ेशन फॉर्मेट (क्यूयूबीओ) में समस्याएं तैयार करने में सक्षम बनाता है। लीप, डी-वेव के रीयल-टाइम क्वांटम एप्लिकेशन एनवायरनमेंट, ग्राहक-स्वामित्व वाली मशीनों, या क्लासिकल सैम्पलर्स में एक ऑनलाइन क्वांटम कंप्यूटर को सबमिट करके परिणाम प्राप्त किए जा सकते हैं।[citation needed]
प्रोजेक्टक्यू
ईटीएच में सैद्धांतिक भौतिकी संस्थान में विकसित एक खुला स्त्रोत प्रोजेक्ट, जो क्वांटम सर्किट बनाने और हेरफेर करने के लिए पायथन प्रोग्रामिंग भाषा का उपयोग करता है।[14] परिणाम या तो एक सिम्युलेटर का उपयोग करके प्राप्त किए जाते हैं, या आईबीएम क्वांटम उपकरणों को कार्य भेजकर प्राप्त किए जाते हैं।
किसकित
आईबीएम द्वारा विकसित एक ओपन सोर्स प्रोजेक्ट।[15] क्वांटम सर्किट को पायथन (प्रोग्रामिंग लैंग्वेज) का उपयोग करके बनाया और हेरफेर किया जाता है। परिणाम या तो सिमुलेटर का उपयोग करके प्राप्त किए जाते हैं जो उपयोगकर्ता के अपने डिवाइस पर चलते हैं, आईबीएम द्वारा प्रदान किए गए सिमुलेटर या आईबीएम द्वारा प्रदान किए गए प्रोटोटाइप क्वांटम डिवाइस। साथ ही बुनियादी क्वांटम संचालन का उपयोग करके प्रोग्राम बनाने की क्षमता, एल्गोरिदम और बेंचमार्किंग के लिए उच्च स्तरीय उपकरण विशेष पैकेजों के भीतर उपलब्ध हैं।[16] Qiskit क्वांटम सर्किट का प्रतिनिधित्व करने के लिए OpenQASM मानक पर आधारित है। यह QiskitPulse मानक के माध्यम से क्वांटम सिस्टम के पल्स स्तर नियंत्रण का भी समर्थन करता है।[17]
किबो
क्वांटम सिमुलेशन, क्वांटम हार्डवेयर नियंत्रण और अंशांकन के लिए एक खुला स्रोत पूर्ण-स्टैक एपीआई, कई अनुसंधान प्रयोगशालाओं द्वारा विकसित किया गया है, जिसमें प्रौद्योगिकी नवाचार संस्थान , क्वांटम टेक्नोलॉजीज के लिए केंद्र और Istituto Nazionale di Fisica न्यूक्लियर शामिल हैं। Qibo एक मॉड्यूलर ढांचा है जिसमें क्वांटम सिमुलेशन और हार्डवेयर नियंत्रण के लिए कई बैकएंड शामिल हैं।[18][19] इस परियोजना का उद्देश्य कई उपकरणों के लिए चालकों के साथ एक प्लेटफॉर्म एग्नोस्टिक क्वांटम हार्डवेयर कंट्रोल फ्रेमवर्क प्रदान करना है[20] और क्वांटम अंशांकन, लक्षण वर्णन और सत्यापन के लिए उपकरण।[21] यह ढांचा प्रयोगशालाओं में आवश्यक सॉफ्टवेयर विकास को सरल बनाकर स्व-होस्ट किए गए क्वांटम उपकरणों पर केंद्रित है।
वन
को छोड़ देता है द्वारा विकसित एक ओपन सोर्स प्रोजेक्ट, जो क्वांटम सर्किट बनाने और हेरफेर करने के लिए पायथन प्रोग्रामिंग भाषा का उपयोग करता है। रिगेटी द्वारा प्रदान किए गए सिमुलेटर या प्रोटोटाइप क्वांटम उपकरणों का उपयोग करके परिणाम प्राप्त किए जाते हैं। साथ ही बुनियादी क्वांटम संचालन का उपयोग करके प्रोग्राम बनाने की क्षमता, ग्रोव पैकेज के भीतर उच्च स्तरीय एल्गोरिदम उपलब्ध हैं।[22] वन क्विल (इंस्ट्रक्शन सेट आर्किटेक्चर) इंस्ट्रक्शन सेट पर आधारित है।
टी|केट>
कैम्ब्रिज क्वांटम कम्प्यूटिंग द्वारा विकसित एक क्वांटम प्रोग्रामिंग वातावरण और ऑप्टिमाइज़िंग कंपाइलर जो सिमुलेटर और कई क्वांटम हार्डवेयर बैक-एंड को लक्षित करता है, दिसंबर 2018 में जारी किया गया।[23]
स्ट्राबेरी के खेत
एक खुला स्रोत सॉफ्टवेयर |ओपन-सोर्स पायथन (प्रोग्रामिंग लैंग्वेज) लाइब्रेरी जिसे Xanadu क्वांटम टेक्नोलॉजीज द्वारा विकसित किया गया है, जो कंटीन्यूअस-वेरिएबल क्वांटम इंफॉर्मेशन (CV) क्वांटम प्रकाशिकी सर्किट की डिजाइनिंग, सिमुलेटिंग और ऑप्टिमाइजेशन के लिए है।[24][25] तीन सिमुलेटर प्रदान किए गए हैं - एक फॉक अवस्था में, एक क्वांटम ऑप्टिक्स के गॉसियन सूत्रीकरण का उपयोग करते हुए,[26] और एक TensorFlow मशीन लर्निंग लाइब्रेरी का उपयोग कर रहा है। स्ट्राबेरी फील्ड्स Xanadu के क्वांटम फोटोनिक हार्डवेयर पर कार्यक्रमों को क्रियान्वित करने के लिए पुस्तकालय भी है।[27][28]
पेनीलेन
क्वांटम कंप्यूटरों की अलग-अलग प्रोग्रामिंग के लिए Xanadu क्वांटम टेक्नोलॉजीज द्वारा विकसित एक ओपन-सोर्स सॉफ्टवेयर | ओपन-सोर्स पायथन (प्रोग्रामिंग लैंग्वेज) लाइब्रेरी।[29][30][31][32] PennyLane उपयोगकर्ताओं को TensorFlow, NumPy, या PyTorch का उपयोग करके मॉडल बनाने की क्षमता प्रदान करता है, और उन्हें IBM क्वांटम अनुभव, Google, Rigetti कंप्यूटिंग, Quantinuum से उपलब्ध क्वांटम कंप्यूटर बैकेंड से जोड़ता है।[33] और अल्पाइन क्वांटम टेक्नोलॉजीज[34].[35]
क्वांटम डेवलपमेंट किट
Microsoft द्वारा विकसित एक परियोजना[36] .NET फ्रेमवर्क के हिस्से के रूप में। क्वांटम प्रोग्रामिंग लैंग्वेज Q# का उपयोग करके विजुअल स्टूडियो और VSCode के भीतर क्वांटम प्रोग्राम लिखे और चलाए जा सकते हैं। QDK में विकसित प्रोग्राम Microsoft के एज़्योर क्वांटम पर चलाए जा सकते हैं,[37] और क्वांटिनम से क्वांटम कंप्यूटर पर चलते हैं,[33]आयनक्यू, और पास्कल।[38]
सर्क
Google द्वारा विकसित एक ओपन सोर्स प्रोजेक्ट, जो क्वांटम सर्किट बनाने और हेरफेर करने के लिए पायथन प्रोग्रामिंग भाषा का उपयोग करता है। Cirq में लिखे प्रोग्राम IonQ, Pasqal पर चलाए जा सकते हैं,[38]रिगेटी कंप्यूटिंग, और अल्पाइन क्वांटम टेक्नोलॉजीज।[34]
क्वांटम प्रोग्रामिंग लैंग्वेज
क्वांटम प्रोग्रामिंग लैंग्वेज के दो मुख्य समूह हैं: अनिवार्य प्रोग्रामिंग क्वांटम प्रोग्रामिंग लैंग्वेज और कार्यात्मक प्रोग्रामिंग क्वांटम प्रोग्रामिंग लैंग्वेज।
अनिवार्य भाषाएँ
अनिवार्य भाषाओं के सबसे प्रमुख प्रतिनिधि QCL हैं,[39] लैनक्यू[40] और क्यू | एसआई>।[41]
क्यूसीएल
क्वांटम संगणना भाषा (QCL) पहली कार्यान्वित क्वांटम प्रोग्रामिंग भाषाओं में से एक है।[42] क्यूसीएल की सबसे महत्वपूर्ण विशेषता उपयोगकर्ता परिभाषित ऑपरेटरों और कार्यों के लिए समर्थन है। इसका वाक्य - विन्यास C (प्रोग्रामिंग लैंग्वेज) के सिंटैक्स जैसा दिखता है और इसके शास्त्रीय डेटा प्रकार C में आदिम डेटा प्रकारों के समान हैं। एक ही प्रोग्राम में क्लासिकल कोड और क्वांटम कोड को जोड़ा जा सकता है।
क्वांटम स्यूडोकोड
ई. निल द्वारा प्रस्तावित क्वांटम स्यूडोकोड क्वांटम एल्गोरिदम के वर्णन के लिए पहली औपचारिक भाषा है। यह पेश किया गया था और इसके अलावा, क्वांटम रैंडम एक्सेस मशीन (QRAM) नामक क्वांटम मशीन के एक मॉडल के साथ मजबूती से जुड़ा हुआ था।
क्यू #
- Quantum Development Kit के साथ प्रयोग करने के लिए Microsoft द्वारा विकसित एक भाषा।[43]
क्यू|एसआई>
Q|SI> .NET Framework|.Net भाषा में एम्बेड किया गया एक प्लेटफ़ॉर्म है, जो क्वांटम प्रोग्रामिंग का समर्थन करता है, जबकि-भाषा के क्वांटम विस्तार में।[41][44] इस प्लेटफॉर्म में क्वांटम वाइट-लैंग्वेज का एक कंपाइलर शामिल है[45] और क्वांटम संगणना के अनुकरण के लिए उपकरणों की एक श्रृंखला, क्वांटम सर्किट का अनुकूलन, क्वांटम कार्यक्रमों का समाप्ति विश्लेषण,[46] और क्वांटम कार्यक्रमों का सत्यापन।[47][48]
क्यू भाषा
क्यू लैंग्वेज दूसरी कार्यान्वित अनिवार्य क्वांटम प्रोग्रामिंग भाषा है।[49] क्यू लैंग्वेज को C++ प्रोग्रामिंग लैंग्वेज के विस्तार के रूप में लागू किया गया था। यह QHadamard, QFourier, QNot, और QSwap जैसे बुनियादी क्वांटम संचालन के लिए कक्षाएं प्रदान करता है, जो बेस क्लास Qop से प्राप्त होते हैं। नए ऑपरेटरों को सी ++ वर्ग तंत्र का उपयोग करके परिभाषित किया जा सकता है।
क्वांटम मेमोरी को वर्ग Qreg द्वारा दर्शाया जाता है।
Qreg x1; // 1-qubit quantum register with initial value 0
Qreg x2(2,0); // 2-qubit quantum register with initial value 0
गणना प्रक्रिया एक प्रदान किए गए सिम्युलेटर का उपयोग करके निष्पादित की जाती है। सिम्युलेटर के मापदंडों का उपयोग करके शोर वातावरण का अनुकरण किया जा सकता है।
क्यूजीसीएल
क्वांटम संरक्षित कमांड भाषा (qGCL) को पी. जुलियानी ने अपनी पीएचडी थीसिस में परिभाषित किया था। यह Edsger Dijkstra द्वारा बनाई गई गार्डेड कमांड लैंग्वेज पर आधारित है।
इसे क्वांटम प्रोग्राम विनिर्देशन की भाषा के रूप में वर्णित किया जा सकता है।
क्यूएमएएसएम
क्वांटम मैक्रो असेंबलर (QMASM) एक निम्न-स्तरीय भाषा है जो क्वांटम एनीलर जैसे डी-वेव के लिए विशिष्ट है।[50]
मचान
मचान सी-जैसी भाषा है, जो QASM और OpenQASM के लिए संकलित है। यह निर्दिष्ट निर्देश सेट उत्पन्न करने से पहले मचान कोड पर अनुकूलन करने के लिए एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर के शीर्ष पर बनाया गया है।[51][52]
सिल्क
ईटीएच ज्यूरिख|ईटीएच ज्यूरिख में विकसित एक मजबूत स्थिर प्रकार प्रणाली के साथ क्वांटम कंप्यूटिंग के लिए सिल्क एक उच्च स्तरीय प्रोग्रामिंग भाषा है।[53][54]
एलक्यूपी
क्वांटम प्रोग्राम्स (LQP) का तर्क एक गतिशील क्वांटम तर्क है, जो क्वांटम मापन और बहु-पक्षीय राज्यों के एकात्मक विकास की महत्वपूर्ण विशेषताओं को व्यक्त करने में सक्षम है, और उलझाव के विभिन्न रूपों के तार्किक लक्षण वर्णन प्रदान करता है। क्वांटम गणना में विभिन्न प्रोटोकॉल की शुद्धता को निर्दिष्ट करने और सत्यापित करने के लिए तर्क का उपयोग किया गया है। [55][56]
कार्यात्मक भाषाएं
क्वांटम कंप्यूटिंग के लिए कार्यात्मक प्रोग्रामिंग भाषाओं को विकसित करने के प्रयास चल रहे हैं। कार्यक्रमों के बारे में तर्क करने के लिए कार्यात्मक प्रोग्रामिंग भाषाएं उपयुक्त हैं। उदाहरणों में सेलिंजर का क्यूपीएल शामिल है,[57] और हास्केल (प्रोग्रामिंग भाषा) | हास्केल जैसी भाषा QML Altenkirch और Grattage द्वारा।[58][59] लैम्ब्डा कैलकुस पर आधारित उच्च-क्रम क्वांटम प्रोग्रामिंग भाषाएं वैन टोंडर द्वारा प्रस्तावित की गई हैं।[60] सेलिंगर और वैलिरोन[61] और अरिघी और डोवेक द्वारा।[62]
क्यूएफसी और क्यूपीएल
QFC और QPL पीटर सेलिंगर द्वारा परिभाषित दो निकट संबंधी क्वांटम प्रोग्रामिंग भाषाएं हैं। वे केवल अपने सिंटैक्स में भिन्न होते हैं: QFC एक फ़्लो चार्ट सिंटैक्स का उपयोग करता है, जबकि QPL एक शाब्दिक सिंटैक्स का उपयोग करता है। इन भाषाओं में शास्त्रीय नियंत्रण प्रवाह होता है लेकिन क्वांटम या शास्त्रीय डेटा पर काम कर सकता है। सेलिंगर सुपरऑपरेटर्स की श्रेणी में इन भाषाओं के लिए एक सांकेतिक शब्दार्थ देता है।
क्यूएमएल
QML Altenkirch और Grattage द्वारा निर्मित हास्केल (प्रोग्रामिंग भाषा) जैसी क्वांटम प्रोग्रामिंग भाषा है।[63][58]सेलिंगर के क्यूपीएल के विपरीत, यह भाषा एक आदिम ऑपरेशन के रूप में क्वांटम जानकारी को छोड़ने के बजाय दोहराव लेती है। इस संदर्भ में डुप्लिकेशन को मैप करने वाले ऑपरेशन के रूप में समझा जाता है को , और नो-क्लोनिंग प्रमेय के असंभव संचालन के साथ भ्रमित नहीं होना चाहिए; लेखकों का दावा है कि यह शास्त्रीय भाषाओं में साझा करने के तरीके के समान है। QML शास्त्रीय और क्वांटम नियंत्रण ऑपरेटरों दोनों का भी परिचय देता है, जबकि अधिकांश अन्य भाषाएँ शास्त्रीय नियंत्रण पर निर्भर करती हैं।
यह कितना घूमता है के संदर्भ में QML के लिए एक परिचालन शब्दार्थ दिया गया है, जबकि सुपरऑपरेटर्स के संदर्भ में एक सांकेतिक शब्दार्थ प्रस्तुत किया गया है, और इन्हें सहमत दिखाया गया है। हास्केल में परिचालन और निरूपण शब्दार्थ दोनों को (शास्त्रीय रूप से) लागू किया गया है।[64]
लिक्वि|>
LIQUi|> (उच्चारण तरल) F Sharp (प्रोग्रामिंग भाषा)|F# प्रोग्रामिंग भाषा पर एक क्वांटम सिमुलेशन एक्सटेंशन है।[65] यह वर्तमान में क्वांटम आर्किटेक्चर एंड कंप्यूटेशन ग्रुप (QuArC) द्वारा विकसित किया जा रहा है।[66] माइक्रोसॉफ्ट रिसर्च में स्टेशन क्यू प्रयासों का हिस्सा है। LIQUi|> उपयोग के लिए भौतिक क्वांटम कंप्यूटर उपलब्ध होने से पहले सिद्धांतकारों को क्वांटम एल्गोरिथम डिजाइन के साथ प्रयोग करने की अनुमति देना चाहता है।[67] इसमें एक प्रोग्रामिंग भाषा, अनुकूलन और शेड्यूलिंग एल्गोरिदम और क्वांटम सिमुलेटर शामिल हैं। LIQUi|> का उपयोग क्वांटम डिवाइस के लिए निम्न-स्तरीय मशीन निर्देशों में उच्च-स्तरीय प्रोग्राम के रूप में लिखे गए क्वांटम एल्गोरिदम का अनुवाद करने के लिए किया जा सकता है।[68]
क्वांटम लैम्ब्डा कैलकुली
क्वांटम लैम्ब्डा कैलकुली 1930 के दशक में अलोंजो चर्च और स्टीफन कोल क्लेन द्वारा पेश किए गए शास्त्रीय लैम्ब्डा कैलकुलस के विस्तार हैं। क्वांटम लैम्ब्डा कैलकुली का उद्देश्य क्वांटम प्रोग्रामिंग भाषाओं को उच्च-क्रम के कार्यों के सिद्धांत के साथ विस्तारित करना है।
क्वांटम लैम्ब्डा कैलकुलस को परिभाषित करने का पहला प्रयास फिलिप मेमिन ने 1996 में किया था।[69] उनका लैम्ब्डा-क्यू कैलकुलस किसी भी क्वांटम कम्प्यूटेशन को व्यक्त करने के लिए पर्याप्त शक्तिशाली है। हालांकि, यह भाषा एनपी-पूर्ण समस्याओं को कुशलतापूर्वक हल कर सकती है, और इसलिए मानक क्वांटम कम्प्यूटेशनल मॉडल (जैसे क्वांटम ट्यूरिंग मशीन या क्वांटम सर्किट मॉडल) से सख्ती से मजबूत प्रतीत होती है। इसलिए, मेमिन का लैम्ब्डा-क्यू कैलकुस शायद भौतिक डिवाइस पर लागू करने योग्य नहीं है[citation needed].
2003 में, आंद्रे वैन टोंडर ने लैम्ब्डा कैलकुलस के एक विस्तार को परिभाषित किया, जो क्वांटम कार्यक्रमों की शुद्धता को साबित करने के लिए उपयुक्त था। उन्होंने स्कीम (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज में एक कार्यान्वयन भी प्रदान किया।[70] 2004 में, सेलिंगर और वैलिरोन ने रैखिक तर्क पर आधारित एक प्रकार प्रणाली के साथ क्वांटम संगणना के लिए दृढ़ता से टाइप किए गए लैम्ब्डा कैलकुलस को परिभाषित किया।[71]
क्विपर
क्विपर 2013 में प्रकाशित हुआ था।[72][73] मेजबान भाषा के रूप में हास्केल (प्रोग्रामिंग भाषा) का उपयोग करते हुए इसे एक एम्बेडेड भाषा के रूप में कार्यान्वित किया जाता है।[74] इस कारण से, क्विपर में लिखे गए क्वांटम प्रोग्राम प्रदान किए गए पुस्तकालयों का उपयोग करके हास्केल (प्रोग्रामिंग भाषा) में लिखे गए हैं। उदाहरण के लिए, निम्नलिखित कोड एक सुपरपोजिशन की तैयारी को लागू करता है
import Quipper
spos :: Bool -> Circ Qubit
spos b = do q <- qinit b
r <- hadamard q
return r
संदर्भ
- ↑ Jarosław Adam Miszczak (2012). क्वांटम कंप्यूटिंग में उच्च स्तरीय संरचनाएं. ISBN 9781608458516.
- ↑ "क्वांटम ओपन-सोर्स प्रोजेक्ट्स की व्यापक सूची". Github. Retrieved January 27, 2022.
- ↑ Bertels, K.; Almudever, C. G.; Hogaboam, J. W.; Ashraf, I.; Guerreschi, G. G.; Khammassi, N. (May 24, 2018). "cQASM v1.0: Towards a Common Quantum Assembly Language" (in English). arXiv:1805.09607v1 [quant-ph].
- ↑ Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "एक व्यावहारिक क्वांटम निर्देश सेट आर्किटेक्चर". arXiv:1608.03355 [quant-ph].
- ↑ McClean, Jarrod R.; Romero, Jonathan; Babbush, Ryan; Aspuru-Guzik, Alán (February 4, 2016). "परिवर्तनशील संकर क्वांटम-शास्त्रीय एल्गोरिदम का सिद्धांत". New Journal of Physics. 18 (2): 023023. arXiv:1509.04279. Bibcode:2016NJPh...18b3023M. doi:10.1088/1367-2630/18/2/023023. ISSN 1367-2630. S2CID 92988541.
- ↑ Rubin, Nicholas C.; Curtis, Michael J.; Zeng, William J. (2016). "A Hybrid Classical/Quantum Approach for Large-Scale Studies of Quantum Systems with Density Matrix Embedding Theory". arXiv:1610.06910 [quant-ph].
- ↑ Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). "एक क्वांटम अनुमानित अनुकूलन एल्गोरिदम". arXiv:1411.4028 [quant-ph].
- ↑ qiskit-openqasm: OpenQASM specification, International Business Machines, July 4, 2017, retrieved July 6, 2017
- ↑ "Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation". quantum-blackbird.readthedocs.io. Retrieved June 24, 2019.
- ↑ Weedbrook, Christian; Amy, Matthew; Bergholm, Ville; Quesada, Nicolás; Izaac, Josh; Killoran, Nathan (March 11, 2019). "Strawberry Fields: A Software Platform for Photonic Quantum Computing". Quantum (in British English). 3: 129. arXiv:1804.03159. Bibcode:2019Quant...3..129K. doi:10.22331/q-2019-03-11-129. S2CID 54763305.
- ↑ Häner, Thomas; Steiger, Damian S.; Svore, Krysta; Troyer, Matthias (2018). "क्वांटम कार्यक्रमों के संकलन के लिए एक सॉफ्टवेयर पद्धति". Quantum Science and Technology. 3 (2): 020501. arXiv:1604.01401. Bibcode:2018QS&T....3b0501H. doi:10.1088/2058-9565/aaa5cc. ISSN 2058-9565. S2CID 1922315.
- ↑ "La puissance d'un ordinateur quantique testée en ligne (The power of a quantum computer tested online)". Le Monde.
- ↑ Heurtel, Nicolas; Fyrillas, Andreas; de Gliniasty, Grégoire; Le Bihan, Raphaël; Malherbe, Sébastien; Pailhas, Marceau; Bertasi, Eric; Bourdoncle, Boris; Emeriau, Pierre-Emmanuel; Mezher, Rawad; Music, Luka; Belabas, Nadia; Valiron, Benoît; Senellart, Pascale; Mansfield, Shane; Senellart, Jean (February 21, 2023). "Perceval: A Software Platform for Discrete Variable Photonic Quantum Computing". Quantum. 7: 931. doi:10.22331/q-2023-02-21-931.
- ↑ "Home".
- ↑ "किस्किट.ऑर्ग". किस्किट.ऑर्ग.
{{cite web}}
: Check|url=
value (help) - ↑ "किस्किट अवलोकन". Retrieved February 10, 2021.
- ↑ McKay, David C.; Alexander, Thomas; Bello, Luciano; Biercuk, Michael J.; Bishop, Lev; Chen, Jiayin; Chow, Jerry M.; Córcoles, Antonio D.; Egger, Daniel; Filipp, Stefan; Gomez, Juan; Hush, Michael; Javadi-Abhari, Ali; Moreda, Diego; Nation, Paul; Paulovicks, Brent; Winston, Erick; Wood, Christopher J.; Wootton, James; Gambetta, Jay M. (2018). "OpenQASM और OpenPulse प्रयोगों के लिए Qiskit बैकएंड विनिर्देश". arXiv:1809.03452 [quant-ph].
- ↑ Efthymiou, Stavros; Ramos-Calderer, Sergi; Bravo-Prieto, Carlos; Pérez-Salinas, Adrián; García-Martín, Diego; Garcia-Saez, Artur; Latorre, José Ignacio; Carrazza, Stefano (January 1, 2022). "Qibo: a framework for quantum simulation with hardware acceleration". Quantum Science and Technology. 7 (1): 015018. arXiv:2009.01845. Bibcode:2022QS&T....7a5018E. doi:10.1088/2058-9565/ac39f5. hdl:2434/887963. ISSN 2058-9565. S2CID 221507478.
- ↑ Efthymiou, Stavros; Lazzarin, Marco; Pasquale, Andrea; Carrazza, Stefano (September 22, 2022). "समय-समय पर संकलन के साथ क्वांटम सिमुलेशन". Quantum (in British English). 6: 814. arXiv:2203.08826. Bibcode:2022Quant...6..814E. doi:10.22331/q-2022-09-22-814. S2CID 247518955.
- ↑ "किबला". November 2, 2022 – via GitHub.
- ↑ "किबोकल". November 1, 2022 – via GitHub.
- ↑ "Welcome to the Documentation for Grove! — Grove 1.7.0 documentation". grove-docs.readthedocs.io.
- ↑ "पाइप". GitHub. January 22, 2022.
- ↑ "Strawberry Fields — Strawberry Fields 0.8.0 documentation". strawberryfields.readthedocs.io (in English). Retrieved September 25, 2018.
- ↑ Killoran, Nathan; Izaac, Josh; Quesada, Nicolás; Bergholm, Ville; Amy, Matthew; Weedbrook, Christian (2019). "Strawberry Fields: A Software Platform for Photonic Quantum Computing". Quantum. 3: 129. arXiv:1804.03159. Bibcode:2019Quant...3..129K. doi:10.22331/q-2019-03-11-129. S2CID 54763305.
- ↑ Weedbrook, Christian; Pirandola, Stefano; García-Patrón, Raúl; Cerf, Nicolas J.; Ralph, Timothy C.; Shapiro, Jeffrey H.; Lloyd, Seth (May 1, 2012). "गॉसियन क्वांटम जानकारी". Reviews of Modern Physics. 84 (2): 621–669. arXiv:1110.3234. Bibcode:2012RvMP...84..621W. doi:10.1103/RevModPhys.84.621. S2CID 119250535.
- ↑ "Hardware — Strawberry Fields". strawberryfields.ai. Retrieved March 26, 2021.
- ↑ "सैकड़ों क्यूबिट्स की दौड़ में, फोटॉन में "क्वांटम एडवांटेज" हो सकता है". IEEE Spectrum: Technology, Engineering, and Science News (in English). March 5, 2021. Retrieved March 26, 2021.
{{cite web}}
: CS1 maint: url-status (link) - ↑ "PennyLane Documentation — PennyLane 0.14.1 documentation". pennylane.readthedocs.io. Retrieved March 26, 2021.
- ↑ "एडब्ल्यूएस पेनीलेन से जुड़ता है, एक ओपन-सोर्स फ्रेमवर्क जो क्वांटम कंप्यूटिंग के साथ मशीन लर्निंग को जोड़ता है". SiliconANGLE (in English). February 17, 2021. Retrieved March 26, 2021.
- ↑ "SD Times Open-Source Project of the Week: PennyLane". SD Times (in English). February 26, 2021. Retrieved March 26, 2021.
- ↑ Salamone, Salvatore (December 13, 2020). "Real-time Analytics News Roundup for Week Ending December 12". RTInsights (in English). Retrieved March 26, 2021.
- ↑ 33.0 33.1 "त्वरित क्वांटम कंप्यूटिंग". www.quantinuum.com.
- ↑ 34.0 34.1 "घर". AQT | ALPINE QUANTUM TECHNOLOGIES.
- ↑ "Plugins and ecosystem — PennyLane". pennylane.ai (in English). Retrieved March 26, 2021.
- ↑ "Azure क्वांटम प्रलेखन, QDK और Q# API संदर्भ - Azure क्वांटम". learn.microsoft.com.
- ↑ "What is Azure Quantum? - Azure Quantum". learn.microsoft.com.
- ↑ 38.0 38.1 "पास्कल". पास्कल.
- ↑ Bernhard Omer. "QCL प्रोग्रामिंग लैंग्वेज".
- ↑ Hynek Mlnařík. "LanQ – a quantum imperative programming language".
- ↑ 41.0 41.1 Liu, Shusen; Zhou, li; Guan, Ji; He, Yang; Duan, Runyao; Ying, Mingsheng (May 9, 2017). "Q|SI>: A Quantum Programming Language". Scientia Sinica Informationis. 47 (10): 1300. arXiv:1710.09500. doi:10.1360/N112017-00095. S2CID 9163705.
- ↑ "QCL - क्वांटम कंप्यूटर के लिए एक प्रोग्रामिंग भाषा". tuwien.ac.at. Retrieved July 20, 2017.
- ↑ "क्यू # और क्वांटम डेवलपमेंट किट का परिचय - एज़्योर क्वांटम". learn.microsoft.com.
- ↑ Ying, Mingsheng (January 2012). "Floyd–hoare Logic for Quantum Programs". ACM Trans. Program. Lang. Syst. 33 (6): 19:1–19:49. doi:10.1145/2049706.2049708. ISSN 0164-0925. S2CID 416960.
- ↑ Ying, Mingsheng; Feng, Yuan (2010). "क्वांटम प्रोग्रामिंग के लिए एक फ़्लोचार्ट भाषा". IEEE Transactions on Software Engineering. 37 (4): 466–485. doi:10.1109/TSE.2010.94. ISSN 0098-5589. S2CID 5879273.
- ↑ Ying, Mingsheng; Yu, Nengkun; Feng, Yuan; Duan, Runyao (2013). "क्वांटम कार्यक्रमों का सत्यापन". Science of Computer Programming. 78 (9): 1679–1700. arXiv:1106.4063. doi:10.1016/j.scico.2013.03.016. S2CID 18913620.
- ↑ Ying, Mingsheng; Ying, Shenggang; Wu, Xiaodi (2017). Invariants of Quantum Programs: Characterisations and Generation. pp. 818–832. doi:10.1145/3093333.3009840. hdl:10453/127333. ISBN 9781450346603.
{{cite book}}
:|journal=
ignored (help) - ↑ Liu, Tao; Li, Yangjia; Wang, Shuling; Ying, Mingsheng; Zhan, Naijun (2016). "क्वांटम होरे लॉजिक और इसके अनुप्रयोगों के लिए एक प्रमेय प्रदाता". arXiv:1601.03835 [cs.LO].
- ↑ "क्यू भाषा के लिए सॉफ्टवेयर". November 23, 2001. Archived from the original on June 20, 2009. Retrieved July 20, 2017.
- ↑ Scott Pakin, "A Quantum Macro Assembler", Proceedings of the 20th Annual IEEE High Performance Extreme Computing Conference 2016
- ↑ Javadi-Abhari, Ali. "Scaffold: Quantum Programming Language". Princeton University-Department of Computer Science. Princeton University. Retrieved September 22, 2020.
- ↑ Litteken, Andrew (May 28, 2020). "आगे OpenQASM समर्थन के साथ एक अद्यतन एलएलवीएम-आधारित क्वांटम रिसर्च कंपाइलर". Quantum Science and Technology. 5 (3): 034013. Bibcode:2020QS&T....5c4013L. doi:10.1088/2058-9565/ab8c2c. OSTI 1803951. S2CID 219101628.
- ↑ "What is Silq?". silq.ethz.ch. Retrieved June 21, 2020.
- ↑ Bichsel, Benjamin; Baader, Maximilian; Gehr, Timon; Vechev, Martin (June 11, 2020). "Silq: a high-level quantum language with safe uncomputation and intuitive semantics". Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (in English). London UK: ACM: 286–300. doi:10.1145/3385412.3386007. ISBN 978-1-4503-7613-6. S2CID 219397029.
- ↑ A. Baltag and S. Smets, "LQP: The Dynamic Logic of Quantum Information", Mathematical Structures in Computer Science 16(3):491-525, 2006.
- ↑ A. Baltag, J. Bergfeld, K. Kishida, J. Sack, S. Smets and S. Zhong. "PLQP & Company: Decidable Logics for Quantum Algorithms". International Journal of Theoretical Physics, Volume 53, Issue 10, pp 3628-3647, 2014.
- ↑ Peter Selinger, "Towards a quantum programming language", Mathematical Structures in Computer Science 14(4):527-586, 2004.
- ↑ 58.0 58.1 Jonathan Grattage: QML Research (website)
- ↑ T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto, QML: A Functional Quantum Programming Language Archived 2006-07-10 at the Wayback Machine (website)
- ↑ Andre van Tonder, "A Lambda Calculus for Quantum Computation", SIAM J. Comput., 33(5), 1109–1135. (27 pages), 2004. Also available from arXiv:quant-ph/0307150
- ↑ Peter Selinger and Benoît Valiron, "A lambda calculus for quantum computation with classical control", Mathematical Structures in Computer Science 16(3):527-552, 2006.
- ↑ Pablo Arrighi, Gilles Dowek, "Linear-algebraic lambda-calculus: higher-order, encodings and confluence", 2006
- ↑ "QML: A Functional Quantum Programming Language". September 26, 2007. Archived from the original on September 26, 2007.
- ↑ Jonathan Grattage, QML: A Functional Quantum Programming Language (compiler) Archived 2016-03-05 at the Wayback Machine, 2005–2008
- ↑ "भाषा एकीकृत क्वांटम संचालन सिम्युलेटर". github.io. Retrieved July 20, 2017.
- ↑ Quantum Architectures and Computation Group (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
- ↑ "स्टेशन क्यू". microsoft.com. Retrieved July 20, 2017.
- ↑ "Language-Integrated Quantum Operations: LIQUi|>". Microsoft. 2016.
- ↑ Philip Maymin, "Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms", 1996
- ↑ André van Tonder. "क्वांटम संगणना के लिए लैम्ब्डा कैलकुलस (वेबसाइट)".
- ↑ Peter Selinger, Benoˆıt Valiron, "Quantum Lambda Calculus"
- ↑ "The Quipper Language".
- ↑ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron. "द क्विपर लैंग्वेज (वेबसाइट)".
- ↑ Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron (2013). क्विपर में क्वांटम प्रोग्रामिंग का परिचय. Lecture Notes in Computer Science. Vol. 7948. pp. 110–124. arXiv:1304.5485. doi:10.1007/978-3-642-38986-3_10. ISBN 978-3-642-38985-6. S2CID 9135905.
अग्रिम पठन
- Mingsheng, Ying (2016). Foundations of quantum programming. Cambridge, MA. ISBN 978-0128025468. OCLC 945735387.
{{cite book}}
: CS1 maint: location missing publisher (link)
बाहरी संबंध
- Curated list of all quantum open-source software projects
- Bibliography on Quantum Programming Languages (updated in May 2007)
- Quantum Physics and Logic (QPL) Conference Series (L stood for 'Languages' until 2006)
- Quantum programming language in Quantiki
- QMASM documentation
- pyQuil documentation including Introduction to Quantum Computing
- Scaffold Source