क्वांटम प्रोग्रामिंग

From Vigyanwiki
Revision as of 14:19, 23 May 2023 by alpha>Anil

क्वांटम प्रोग्रामिंग निर्देशों के अनुक्रमों को कोडांतरण करने की प्रक्रिया है, जिसे क्वांटम सर्किट कहा जाता है, जो क्वांटम कम्प्यूटिंग पर चलने में सक्षम हैं। क्वांटम प्रोग्रामिंग भाषा उच्च-स्तरीय निर्माणों का उपयोग करके क्वांटम एल्गोरिथ्म को व्यक्त करने में मदद करती हैं।[1] यह क्षेत्र विवृत स्त्रोत में गहराई से निहित है और इसके परिणामस्वरूप इस लेख में चर्चा किए गए अधिकांश क्वांटम सॉफ्टवेयर विवृत स्रोत सॉफ्टवेयर के रूप में स्वतंत्र रूप से उपलब्ध हैं।[2]

क्वांटम निर्देश सेट

क्वांटम इंस्ट्रक्शन सेट का उपयोग उच्च स्तरीय एल्गोरिदम को भौतिक निर्देशों में बदलने के लिए किया जाता है जिसे क्वांटम प्रोसेसर पर निष्पादित किया जा सकता है। कभी-कभी ये निर्देश किसी दिए गए हार्डवेयर प्लेटफॉर्म के लिए विशिष्ट होते हैं, उदा आयन जाल या सुपरकंडक्टिंग क्वांटम कंप्यूटिंग

कक़स्म

कक़स्म,[3] सामान्य क्यूएएसएम के रूप में भी जाना जाता है, एक हार्डवेयर-अज्ञेय क्वांटम असेंबली भाषा है जो सभी क्वांटम संकलन और सिमुलेशन टूल के बीच अंतर की गारंटी देती है। इसे डेल्फ़्ट यूनिवर्सिटी ऑफ़ टेक्नोलॉजी में क्यूसीए लैब द्वारा प्रस्तुत किया गया था।

क्विल

क्वांटम कंप्यूटिंग के लिए क्विल (निर्देश सेट आर्किटेक्चर) है जिसने सबसे पहले एक साझा क्वांटम/क्लासिकल मेमोरी प्रतिरूप प्रस्तुत किया। इसे ए प्रैक्टिकल क्वांटम इंस्ट्रक्शन सेट आर्किटेक्चर में रॉबर्ट स्मिथ, माइकल कर्टिस और विलियम ज़ेंग द्वारा प्रस्तुत किया गया था।[4] कई क्वांटम एल्गोरिदम (क्वांटम टेलीपोर्टेशन, क्वांटम त्रुटि सुधार, सिमुलेशन,[5][6] और अनुकूलन एल्गोरिदम [7]सहित) को एक साझा मेमोरी आर्किटेक्चर की आवश्यकता होती है।

विवृत क्यूएएसएम

विवृत क्यूएएसएम[8] आईबीएम द्वारा क्यूसकिट और आईबीएम क्यू एक्सपीरियंस के साथ उपयोग के लिए प्रस्तुत किया गया मध्यवर्ती प्रतिनिधित्व है।

ब्लैकबर्ड

ब्लैकबर्ड[9][10] एक क्वांटम इंस्ट्रक्शन सेट और मध्यवर्ती प्रतिनिधित्व है जिसका उपयोग ज़ानाडू क्वांटम टेक्नोलॉजीज और स्ट्रॉबेरी क्षेत्र द्वारा किया जाता है। इसे निरंतर-परिवर्तनीय क्वांटम प्रोग्राम का प्रतिनिधित्व करने के लिए अभिकल्पित किया गया है जो फोटोनिक क्वांटम हार्डवेयर पर चल सकता है।

क्वांटम सॉफ़्टवेयर विकास किट

क्वांटम सॉफ्टवेयर डेवलपमेंट किट क्वांटम प्रोग्राम बनाने और हेरफेर करने के लिए उपकरणों का संग्रह प्रदान करते हैं।[11] वे क्वांटम कार्यक्रमों का अनुकरण करने के साधन भी प्रदान करते हैं या उन्हें क्लाउड-आधारित क्वांटम उपकरणों और स्व-होस्ट किए गए क्वांटम उपकरणों का उपयोग करके चलाने के लिए तैयार करते हैं।

एसडीके क्वांटम प्रोसेसर तक पहुंच के साथ

प्रोटोटाइप क्वांटम उपकरणों के साथ-साथ सिमुलेटर पर क्वांटम सर्किट चलाने के लिए निम्नलिखित सॉफ़्टवेयर डेवलपमेंट किट का उपयोग किया जा सकता है।

परसेवल

पायथन पर आधारित फोटोनिक क्वांटम सर्किट डिजाइन करने और क्वांटम एल्गोरिदम विकसित करने के लिए क्वांडेला [एफआर] द्वारा बनाई गई एक विवृत-सोर्स परियोजना है। सिमुलेशन या तो उपयोगकर्ता के अपने कंप्यूटर पर या क्लाउड कम्प्यूटिंग पर चलाए जाते हैं। परसेवल का उपयोग क्वांडेला के क्लाउड-आधारित फोटोनिक क्वांटम प्रोसेसर की सूची से जोड़ने के लिए भी किया जाता है।[12][13]

महासागर

डी-वेव द्वारा विकसित उपकरणों का एक विवृत सोर्स सूट है। ज्यादातर पायथन प्रोग्रामिंग भाषा में लिखा गया है, यह उपयोगकर्ताओं को ईज़िंग मॉडल और क्वाड्रैटिक अनकंस्ट्रेन्ड बाइनरी ऑप्टिमाइज़ेशन फॉर्मेट (क्यूयूबीओ) में समस्याएं तैयार करने में सक्षम बनाता है। लीप, डी-वेव के रीयल-टाइम क्वांटम एप्लिकेशन एनवायरनमेंट, ग्राहक-स्वामित्व वाली मशीनों, या क्लासिकल सैम्पलर्स में एक ऑनलाइन क्वांटम कंप्यूटर को सबमिट करके परिणाम प्राप्त किए जा सकते हैं।[citation needed]

Python के साथ projectq का उपयोग कर एक नमूना कोड

प्रोजेक्टक्यू

ईटीएच में सैद्धांतिक भौतिकी संस्थान में विकसित एक विवृत स्त्रोत प्रोजेक्ट, जो क्वांटम सर्किट बनाने और हेरफेर करने के लिए पायथन प्रोग्रामिंग भाषा का उपयोग करता है।[14]परिणाम या तो एक सिम्युलेटर का उपयोग करके प्राप्त किए जाते हैं, या आईबीएम क्वांटम उपकरणों को कार्य भेजकर प्राप्त किए जाते हैं।

किसकित

आईबीएम द्वारा विकसित एक विवृत सोर्स प्रोजेक्ट।[15] पायथन (प्रोग्रामिंग भाषा) का उपयोग करके क्वांटम सर्किट बनाए जाते हैं और उनमें हेरफेर किया जाता है। परिणाम या तो सिमुलेटर का उपयोग करके प्राप्त किए जाते हैं जो उपयोगकर्ता के अपने उपकरण पर चलते हैं, आईबीएम द्वारा प्रदान किए गए सिमुलेटर या आईबीएम द्वारा प्रदान किए गए प्रोटोटाइप क्वांटम उपकरण। साथ ही बुनियादी क्वांटम संचालन का उपयोग करके प्रोग्राम बनाने की क्षमता, एल्गोरिदम और बेंचमार्किंग के लिए उच्च स्तरीय उपकरण विशेष पैकेजों के भीतर उपलब्ध हैं।[16] किसकित क्वांटम सर्किट का प्रतिनिधित्व करने के लिए विवृत क्यूएएसएम मानक पर आधारित है। यह किसकितपल्स मानक के माध्यम से क्वांटम सिस्टम के पल्स स्तर नियंत्रण का भी समर्थन करता है।[17]

किबो

क्वांटम सिमुलेशन, क्वांटम हार्डवेयर नियंत्रण और अंशांकन के लिए एक विवृत स्रोत पूर्ण-स्टैक एपीआई, कई अनुसंधान प्रयोगशालाओं द्वारा विकसित किया गया है, जिसमें प्रौद्योगिकी नवाचार संस्थान , क्वांटम टेक्नोलॉजीज के लिए केंद्र और स्टिटूटो नाजियोनेल डी फिसिका न्यूक्लियर सम्मलित हैं। क्यूबो एक मॉड्यूलर फ्रेमवर्क है जिसमें क्वांटम सिमुलेशन और हार्डवेयर नियंत्रण के लिए कई बैकएंड सम्मलित हैं।[18][19]इस परियोजना का उद्देश्य कई उपकरणों[20] और क्वांटम अंशांकन, लक्षण वर्णन और सत्यापन के लिए उपकरणों के लिए चालकों के साथ एक प्लेटफॉर्म एग्नोस्टिक क्वांटम हार्डवेयर नियंत्रण फ्रेमवर्क प्रदान करना है।[21] यह फ्रेमवर्क प्रयोगशालाओं में आवश्यक सॉफ्टवेयर विकास को सरल बनाकर स्व-होस्ट किए गए क्वांटम उपकरणों पर केंद्रित है।

फॉरेस्ट

रिगेटी द्वारा विकसित एक विवृत सोर्स प्रोजेक्ट, जो क्वांटम सर्किट बनाने और हेरफेर करने के लिए पायथन प्रोग्रामिंग भाषा का उपयोग करता है। रिगेटी द्वारा प्रदान किए गए सिमुलेटर या प्रोटोटाइप क्वांटम उपकरणों का उपयोग करके परिणाम प्राप्त किए जाते हैं। साथ ही बुनियादी क्वांटम संचालन का उपयोग करके प्रोग्राम बनाने की क्षमता, ग्रोव पैकेज के भीतर उच्च स्तरीय एल्गोरिदम उपलब्ध हैं।[22]फॉरेस्ट क्विल (इंस्ट्रक्शन सेट आर्किटेक्चर) इंस्ट्रक्शन सेट पर आधारित है।

टी|केट>

कैम्ब्रिज क्वांटम कम्प्यूटिंग द्वारा विकसित एक क्वांटम प्रोग्रामिंग वातावरण और अनुकूलन कंपाइलर जो सिमुलेटर और कई क्वांटम हार्डवेयर बैक-एंड को लक्षित करता है, दिसंबर 2018 में जारी किया गया।[23]

स्ट्रॉबेरी के क्षेत्र

ज़ानाडू क्वांटम प्रौद्योगिकिय द्वारा विकसित एक विवृत स्रोत पायथन (प्रोग्रामिंग भाषा) लाइब्रेरी, निरंतर चर (CV) क्वांटम ऑप्टिकल सर्किट के डिजाइन, सिमुलेटिंग और इष्टतमीकरण के लिए है।[24][25] तीन सिमुलेटर प्रदान किए गए हैं - एक फॉक अवस्था में, एक क्वांटम ऑप्टिक्स के गॉसियन सूत्रीकरण का उपयोग करते हुए,[26] और एक टेंसरफ्लो मशीन लर्निंग लाइब्रेरी का उपयोग कर रहा है। स्ट्राबेरी क्षेत्र ज़ानाडू के क्वांटम फोटोनिक हार्डवेयर पर कार्यक्रमों को क्रियान्वित करने के लिए पुस्तकालय भी है।[27][28]

पेनीलेन

क्वांटम कंप्यूटरों की अलग-अलग प्रोग्रामिंग के लिए ज़ानाडू क्वांटम प्रौद्योगिकियों द्वारा विकसित एक विवृत-सोर्स पायथन (प्रोग्रामिंग भाषा) लाइब्रेरी।[29][30][31][32] पेनीलेन उपयोगकर्ताओं को टेंसरफ्लो, न्यूमपी, या पाइटोरच का उपयोग करके मॉडल बनाने की क्षमता प्रदान करता है, और उन्हें आईबीएम, गूगल, रिगेटी, क्वांटम और अल्पाइन क्वांटम प्रौद्योगिकियों से उपलब्ध क्वांटम कंप्यूटर बैकेंड से जोड़ता है।[33] [34].[35]

क्वांटम विकास किट

माइक्रोसॉफ्ट द्वारा नेट फ्रेमवर्क के हिस्से के रूप में विकसित एक परियोजना। क्वांटम प्रोग्रामिंग भाषा Q# का उपयोग करके विजुअल स्टूडियो और वीएससीओडी के भीतर क्वांटम प्रोग्राम लिखे और चलाए जा सकते हैं। क्यूडीके में विकसित प्रोग्राम माइक्रोसॉफ्ट के एज़्योर क्वांटम पर चलाए जा सकते हैं,[36] और क्वांटिनम आयनक्यू, और पास्कल से क्वांटम कंप्यूटर पर चलाए जा सकते हैं।[33][37]

सर्क

गूगल द्वारा विकसित एक विवृत सोर्स प्रोजेक्ट, जो क्वांटम सर्किट बनाने और हेरफेर करने के लिए पायथन प्रोग्रामिंग भाषा का उपयोग करता है। सर्क में लिखे गए प्रोग्राम आयनक्यू, पास्कल,[37]रिगेटी, और अल्पाइन क्वांटम प्रौद्योगिकी पर चलाए जा सकते हैं।[34]

क्वांटम प्रोग्रामिंग भाषा

क्वांटम प्रोग्रामिंग भाषाओं के दो मुख्य समूह हैं: अनिवार्य क्वांटम प्रोग्रामिंग भाषाएं और कार्यात्मक क्वांटम प्रोग्रामिंग भाषाएं।

अनिवार्य भाषाएँ

अनिवार्य भाषाओं के सबसे प्रमुख प्रतिनिधि क्यूसीएल[38] लैनक्यू[39] और क्यू|एसआई> हैं।[40]

क्यूसीएल

क्वांटम संगणना भाषा (क्यूसीएल) पहली कार्यान्वित क्वांटम प्रोग्रामिंग भाषाओं में से एक है।[41] क्यूसीएल की सबसे महत्वपूर्ण विशेषता उपयोगकर्ता परिभाषित संचालको और फलन के लिए समर्थन है। इसकावाक्य - विन्यास C (प्रोग्रामिंग भाषा) के वाक्य - विन्यास जैसा दिखता है और इसके क्लासिकल डेटा प्रकार C में प्रिमटिव डेटा प्रकारों के समान हैं। क्लासिकल कोड और क्वांटम कोड को एक ही प्रोग्राम में जोड़ा जा सकता है।

क्वांटम स्यूडोकोड

ई. निल द्वारा प्रस्तावित क्वांटम स्यूडोकोड क्वांटम एल्गोरिदम के विवरण के लिए पहली औपचारिक भाषा है। यह पेश किया गया था और इसके अतिरिक्त, क्वांटम रैंडम एक्सेस मशीन (क्यूआरएएम) नामक क्वांटम मशीन के एक मॉडल के साथ मजबूती से जुड़ा हुआ था।

क्यू #

  1. क्वांटम डेवलपमेंट किट के साथ प्रयोग करने के लिए माइक्रोसॉफ्ट द्वारा विकसित एक भाषाहै।[42]

क्यू|एसआई>

क्यू|एसआई> नेट भाषा में सन्निहित किया गया एक प्लेटफ़ॉर्म है, जो क्वांटम प्रोग्रामिंग का समर्थन करता है, भाषा के क्वांटम विस्तार में।[40][43] इस प्लेटफॉर्म में क्वांटम वाइल-भाषा[44] का एक कंपाइलर और क्वांटम कम्प्यूटेशन के अनुकरण के लिए उपकरणों की एक श्रृंखला, क्वांटम सर्किट का अनुकूलन, क्वांटम कार्यक्रमों का समाप्ति विश्लेषण,[45] और क्वांटम कार्यक्रमों का सत्यापन सम्मलित है।[46][47]

क्यू भाषा

क्यू भाषा दूसरी कार्यान्वित अनिवार्य क्वांटम प्रोग्रामिंग भाषा है।[48] क्यू भाषा को C++ प्रोग्रामिंग भाषा के विस्तार के रूप में लागू किया गया था। यह क्यू हैडमार्ड, क्यूफूरियर, क्यूनॉट, और क्यूस्वैप जैसे बुनियादी क्वांटम संचालन के लिए कक्षाएं प्रदान करता है, जो बेस क्लास क्यूप से प्राप्त होते हैं। नए संचालको को C++ वर्ग तंत्र का उपयोग करके परिभाषित किया जा सकता है।

क्वांटम मेमोरी को वर्ग क्यूरेग द्वारा दर्शाया जाता है।

Qreg x1; // 1-qubit quantum register with initial value 0
Qreg x2(2,0); // 2-qubit quantum register with initial value 0

गणना प्रक्रिया एक प्रदान किए गए सिम्युलेटर का उपयोग करके निष्पादित की जाती है।

क्यूजीसीएल

क्वांटम संरक्षित कमांड भाषा (क्यूजीसीएल) को पी. जुलियानी ने अपनी पीएचडी थीसिस में परिभाषित किया था। यह एडजर डिज्कस्ट्रा द्वारा बनाई गई संरक्षित कमांड भाषा पर आधारित है।

इसे क्वांटम प्रोग्राम विनिर्देशन की भाषा के रूप में वर्णित किया जा सकता है।

क्यूएमएएसएम

क्वांटम मैक्रो असेंबलर (क्यूएमएएसएम) डी-वेव जैसे क्वांटम एनीलर के लिए विशिष्ट एक निम्न-स्तरीय भाषा है।[49]

मचान

मचान सी-जैसी भाषा है, जो क्यूएएसएम और विवृत क्यूएएसएम के लिए संकलित है। यह निर्दिष्ट निर्देश सेट उत्पन्न करने से पहले मचान कोड पर अनुकूलन करने के लिए एलएलवीएम कंपाइलर इंफ्रास्ट्रक्चर के शीर्ष पर बनाया गया है।।[50][51]

सिल्क

ईटीएच ज्यूरिख में विकसित एक मजबूत स्थिर प्रकार प्रणाली के साथ क्वांटम कंप्यूटिंग के लिए सिल्क एक उच्च स्तरीय प्रोग्रामिंग भाषा है।[52][53]

एलक्यूपी

क्वांटम प्रोग्राम्स (एलक्यूपी) का तर्क एक गतिशील क्वांटम तर्क है, जो क्वांटम मापन और बहु-पक्षीय स्थितियो के एकात्मक विकास की महत्वपूर्ण विशेषताओं को व्यक्त करने में सक्षम है, और उलझाव के विभिन्न रूपों के तार्किक लक्षण वर्णन प्रदान करता है। क्वांटम गणना में विभिन्न प्रोटोकॉल की शुद्धता को निर्दिष्ट करने और सत्यापित करने के लिए तर्क का उपयोग किया गया है। [54][55]

कार्यात्मक भाषाएं

क्वांटम कंप्यूटिंग के लिए कार्यात्मक प्रोग्रामिंग भाषाओं को विकसित करने के प्रयास चल रहे हैं। कार्यक्रमों के बारे में तर्क करने के लिए कार्यात्मक प्रोग्रामिंग भाषाएं उपयुक्त हैं। उदाहरणों में सेलिंजर का क्यूपीएल,[56] और अलटेनकिर्च और ग्राटेज द्वारा हास्केल (प्रोग्रामिंग भाषा) जैसी क्यूएमएल भाषा सम्मलित हैं।[57][58] लैम्ब्डा कैलकुस पर आधारित उच्च-क्रम क्वांटम प्रोग्रामिंग भाषाएं, वैन टोंडर,[59] सेलिंगर और वैलिरोन[60] और अरिघी और डोवेक द्वारा प्रस्तावित की गई हैं।[61]

क्यूएफसी और क्यूपीएल

क्यूएफसी और क्यूपीएल पीटर सेलिंगर द्वारा परिभाषित दो निकट संबंधी क्वांटम प्रोग्रामिंग भाषाएं हैं। वे केवल अपने सिंटैक्स में भिन्न होते हैं: वे केवल अपने सिंटैक्स में भिन्न होते हैं: क्यूएफसी एक फ़्लो चार्ट सिंटैक्स का उपयोग करता है, जबकि क्यूपीएल एक शाब्दिक सिंटैक्स का उपयोग करता है। इन भाषाओं में शास्त्रीय नियंत्रण प्रवाह होता है लेकिन क्वांटम या क्लासिक डेटा पर काम कर सकता है। सेलिंगर सुपरऑपरेटर्स की श्रेणी में इन भाषाओं के लिए एक सांकेतिक शब्दार्थ देता है।

क्यूएमएल

क्यूएमएल अलटेनकिर्च और ग्राटेज द्वारा निर्मित हास्केल (प्रोग्रामिंग भाषा) जैसी क्वांटम प्रोग्रामिंग भाषा है।[62][57]सेलिंगर के क्यूपीएल के विपरीत, यह भाषा एक प्रिमिटिव संचालन के रूप में क्वांटम जानकारी को छोड़ने के अतिरिक्तदोहराव लेती है। इस संदर्भ में दोहराव को मैप करने वाले संचालन के रूप में समझा जाता है को , और नो-क्लोनिंग प्रमेय के असंभव संचालन के साथ भ्रमित नहीं होना चाहिए; लेखकों का दावा है कि यह क्लासिक भाषाओं में साझा करने के तरीके के समान है। क्यूएमएल क्लासिक और क्वांटम नियंत्रण संचालको दोनों का भी परिचय देता है, जबकि अधिकांश अन्य भाषाएँ क्लासिक नियंत्रण पर निर्भर करती हैं।

ऑपरेशनल सिमेंटिक्स के संदर्भ में क्यूएमएल के लिए एक परिचालन शब्दार्थ दिया गया है, जबकि सुपरऑपरेटर्स के संदर्भ में एक सांकेतिक शब्दार्थ प्रस्तुत किया गया है, और इन्हें सहमत दिखाया गया है। हास्केल में परिचालनात्मक और निरूपण शब्दार्थ दोनों को (क्लासिक रूप से) लागू किया गया है।[63]

लिक्वि|>

लिक्वि|> (उच्चारण तरल) F शार्प प्रोग्रामिंग भाषा पर एक क्वांटम सिमुलेशन विस्तार है।[64]यह वर्तमान में क्वांटम आर्किटेक्चर एंड कंप्यूटेशन ग्रुप (क्वार्क) द्वारा विकसित किया जा रहा है [65] जो माइक्रोसॉफ्ट रिसर्च में स्टेशनक्यू प्रयासों का हिस्सा है। लिक्वि|> उपयोग के लिए भौतिक क्वांटम कंप्यूटर उपलब्ध होने से पहले सिद्धांतकारों को क्वांटम एल्गोरिथम डिजाइन के साथ प्रयोग करने की अनुमति देना चाहता है।[66]

इसमें एक प्रोग्रामिंग भाषा, अनुकूलन और शेड्यूलिंग एल्गोरिदम और क्वांटम सिमुलेटर सम्मलित हैं। लिक्वि|> भौतिक क्वांटम कंप्यूटर उपयोग के लिए उपलब्ध होने से पहले सिद्धांतकारों को क्वांटम एल्गोरिथम डिजाइन के साथ प्रयोग करने की अनुमति देना चाहता है।[67]

क्वांटम लैम्ब्डा कैलकुली

क्वांटम लैम्ब्डा कैलकुली 1930 के दशक में अलोंजो चर्च और स्टीफन कोल क्लेन द्वारा पेश किए गए क्लासिक लैम्ब्डा कैलकुलस के विस्तार हैं। क्वांटम लैम्ब्डा कैलकुली का उद्देश्य क्वांटम प्रोग्रामिंग भाषाओं को एक उच्च-क्रम फ़ंक्शन के सिद्धांत के साथ विस्तारित करना है।

क्वांटम लैम्ब्डा कैलकुलस को परिभाषित करने का पहला प्रयास फिलिप मेमिन ने 1996 में किया था।[68] उनका लैम्ब्डा-क्यू कैलकुलस किसी भी क्वांटम कम्प्यूटेशन को व्यक्त करने के लिए पर्याप्त शक्तिशाली है। चूंकि, यह भाषा एनपी-पूर्ण समस्याओं को कुशलतापूर्वक हल कर सकती है, और इसलिए मानक क्वांटम कम्प्यूटेशनल मॉडल (जैसे क्वांटम ट्यूरिंग मशीन या क्वांटम सर्किट मॉडल) से सख्ती से मजबूत प्रतीत होती है। मेमिन का लैम्ब्डा-क्यू कैलकुलस शायद एक भौतिक उपकरण पर लागू करने योग्य नहीं है ।[citation needed].

2003 में, आंद्रे वैन टोंडर ने लैम्ब्डा कैलकुलस के एक विस्तार को परिभाषित किया, जो क्वांटम कार्यक्रमों की शुद्धता को सिद्ध करना करने के लिए उपयुक्त था। उन्होंने स्कीम (प्रोग्रामिंग भाषा) में एक कार्यान्वयन भी प्रदान किया।[69]

2004 में, सेलिंगर और वैलिरोन ने रैखिक तर्क पर आधारित एक प्रकार प्रणाली के साथ क्वांटम संगणना के लिए दृढ़ता से टाइप किए गए लैम्ब्डा कैलकुलस को परिभाषित किया।[70]

क्विपर

क्विपर 2013 में प्रकाशित हुआ था।[71][72] हास्केल (प्रोग्रामिंग भाषा) को मेजबान भाषा के रूप में उपयोग करते हुए इसे एक एम्बेडेड भाषा के रूप में कार्यान्वित किया गया है।[73] इस कारण से, क्विपर में लिखे गए क्वांटम प्रोग्राम प्रदान किए गए पुस्तकालयों का उपयोग करके हास्केल (प्रोग्रामिंग भाषा) में लिखे गए हैं। उदाहरण के लिए, निम्नलिखित कोड एक सुपरपोजिशन की तैयारी को लागू करता है

import Quipper

spos :: Bool -> Circ Qubit
spos b = do q <- qinit b
            r <- hadamard q
            return r

संदर्भ

  1. Jarosław Adam Miszczak (2012). क्वांटम कंप्यूटिंग में उच्च स्तरीय संरचनाएं. ISBN 9781608458516.
  2. "क्वांटम ओपन-सोर्स प्रोजेक्ट्स की व्यापक सूची". Github. Retrieved January 27, 2022.
  3. 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].
  4. Smith, Robert S.; Curtis, Michael J.; Zeng, William J. (2016). "एक व्यावहारिक क्वांटम निर्देश सेट आर्किटेक्चर". arXiv:1608.03355 [quant-ph].
  5. 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.
  6. 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].
  7. Farhi, Edward; Goldstone, Jeffrey; Gutmann, Sam (2014). "एक क्वांटम अनुमानित अनुकूलन एल्गोरिदम". arXiv:1411.4028 [quant-ph].
  8. qiskit-openqasm: OpenQASM specification, International Business Machines, July 4, 2017, retrieved July 6, 2017
  9. "Blackbird Quantum Assembly Language — Blackbird 0.2.0 documentation". quantum-blackbird.readthedocs.io. Retrieved June 24, 2019.
  10. 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.
  11. 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.
  12. "La puissance d'un ordinateur quantique testée en ligne (The power of a quantum computer tested online)". Le Monde.
  13. 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.
  14. "Home".
  15. "किस्किट.ऑर्ग". किस्किट.ऑर्ग. {{cite web}}: Check |url= value (help)
  16. "किस्किट अवलोकन". Retrieved February 10, 2021.
  17. 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].
  18. 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.
  19. 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.
  20. "किबला". November 2, 2022 – via GitHub.
  21. "किबोकल". November 1, 2022 – via GitHub.
  22. "Welcome to the Documentation for Grove! — Grove 1.7.0 documentation". grove-docs.readthedocs.io.
  23. "पाइप". GitHub. January 22, 2022.
  24. "Strawberry Fields — Strawberry Fields 0.8.0 documentation". strawberryfields.readthedocs.io (in English). Retrieved September 25, 2018.
  25. 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.
  26. 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.
  27. "Hardware — Strawberry Fields". strawberryfields.ai. Retrieved March 26, 2021.
  28. "सैकड़ों क्यूबिट्स की दौड़ में, फोटॉन में "क्वांटम एडवांटेज" हो सकता है". IEEE Spectrum: Technology, Engineering, and Science News (in English). March 5, 2021. Retrieved March 26, 2021.{{cite web}}: CS1 maint: url-status (link)
  29. "PennyLane Documentation — PennyLane 0.14.1 documentation". pennylane.readthedocs.io. Retrieved March 26, 2021.
  30. "एडब्ल्यूएस पेनीलेन से जुड़ता है, एक ओपन-सोर्स फ्रेमवर्क जो क्वांटम कंप्यूटिंग के साथ मशीन लर्निंग को जोड़ता है". SiliconANGLE (in English). February 17, 2021. Retrieved March 26, 2021.
  31. "SD Times Open-Source Project of the Week: PennyLane". SD Times (in English). February 26, 2021. Retrieved March 26, 2021.
  32. Salamone, Salvatore (December 13, 2020). "Real-time Analytics News Roundup for Week Ending December 12". RTInsights (in English). Retrieved March 26, 2021.
  33. 33.0 33.1 "त्वरित क्वांटम कंप्यूटिंग". www.quantinuum.com.
  34. 34.0 34.1 "घर". AQT | ALPINE QUANTUM TECHNOLOGIES.
  35. "Plugins and ecosystem — PennyLane". pennylane.ai (in English). Retrieved March 26, 2021.
  36. "What is Azure Quantum? - Azure Quantum". learn.microsoft.com.
  37. 37.0 37.1 "पास्कल". पास्कल.
  38. Bernhard Omer. "QCL प्रोग्रामिंग लैंग्वेज".
  39. Hynek Mlnařík. "LanQ – a quantum imperative programming language".
  40. 40.0 40.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.
  41. "QCL - क्वांटम कंप्यूटर के लिए एक प्रोग्रामिंग भाषा". tuwien.ac.at. Retrieved July 20, 2017.
  42. "क्यू # और क्वांटम डेवलपमेंट किट का परिचय - एज़्योर क्वांटम". learn.microsoft.com.
  43. 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.
  44. 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.
  45. 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.
  46. 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)
  47. Liu, Tao; Li, Yangjia; Wang, Shuling; Ying, Mingsheng; Zhan, Naijun (2016). "क्वांटम होरे लॉजिक और इसके अनुप्रयोगों के लिए एक प्रमेय प्रदाता". arXiv:1601.03835 [cs.LO].
  48. "क्यू भाषा के लिए सॉफ्टवेयर". November 23, 2001. Archived from the original on June 20, 2009. Retrieved July 20, 2017.
  49. Scott Pakin, "A Quantum Macro Assembler", Proceedings of the 20th Annual IEEE High Performance Extreme Computing Conference 2016
  50. Javadi-Abhari, Ali. "Scaffold: Quantum Programming Language". Princeton University-Department of Computer Science. Princeton University. Retrieved September 22, 2020.
  51. 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.
  52. "What is Silq?". silq.ethz.ch. Retrieved June 21, 2020.
  53. 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.
  54. A. Baltag and S. Smets, "LQP: The Dynamic Logic of Quantum Information", Mathematical Structures in Computer Science 16(3):491-525, 2006.
  55. 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.
  56. Peter Selinger, "Towards a quantum programming language", Mathematical Structures in Computer Science 14(4):527-586, 2004.
  57. 57.0 57.1 Jonathan Grattage: QML Research (website)
  58. 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)
  59. 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
  60. 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.
  61. Pablo Arrighi, Gilles Dowek, "Linear-algebraic lambda-calculus: higher-order, encodings and confluence", 2006
  62. "QML: A Functional Quantum Programming Language". September 26, 2007. Archived from the original on September 26, 2007.
  63. Jonathan Grattage, QML: A Functional Quantum Programming Language (compiler) Archived 2016-03-05 at the Wayback Machine, 2005–2008
  64. "भाषा एकीकृत क्वांटम संचालन सिम्युलेटर". github.io. Retrieved July 20, 2017.
  65. Quantum Architectures and Computation Group (QuArC), https://www.microsoft.com/en-us/research/group/quantum-architectures-and-computation-group-quarc/, 2011
  66. "स्टेशन क्यू". microsoft.com. Retrieved July 20, 2017.
  67. "Language-Integrated Quantum Operations: LIQUi|>". Microsoft. 2016.
  68. Philip Maymin, "Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms", 1996
  69. André van Tonder. "क्वांटम संगणना के लिए लैम्ब्डा कैलकुलस (वेबसाइट)".
  70. Peter Selinger, Benoˆıt Valiron, "Quantum Lambda Calculus"
  71. "The Quipper Language".
  72. Alexander S. Green; Peter LeFanu Lumsdaine; Neil J. Ross; Peter Selinger; Benoît Valiron. "द क्विपर लैंग्वेज (वेबसाइट)".
  73. 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.


अग्रिम पठन

  • मिंगशेंग, यिंग (2016). क्वांटम प्रोग्रामिंग की नींव. कैम्ब्रिज, एमए. ISBN 978-0128025468. OCLC 945735387.{{cite book}}: CS1 maint: location missing publisher (link)

बाहरी संबंध