क्वांटम कम्प्यूटेशन लैंग्वेज

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

यह लैंग्वेज क्वांटम कंप्यूटर के लिए प्रोग्रामिंग कॉन्सेप्ट्स का पता लगाने के लिए बनाई गई थी।

क्यूसीएल लाइब्रेरी क्वांटम एल्गोरिथ्म में उपयोग किए जाने वाले मानक क्वांटम संचालक प्रदान करती है जैसे:
 * कंट्रोल्ड-नॉट कई टारगेट क्वैबिट्स के साथ ,
 * कई क्वैबिट पर हैडामर्ड ऑपरेशन,
 * फेज एंड कंट्रोल्ड फेज।
 * द्विआधारी स्थिरांक (सभी मापांक n) के साथ जोड़, गुणा और घातांक के लिए क्वांटम एल्गोरिथ्म
 * क्वांटम फूरियर रूपांतरण

सिंटेक्स

 * डेटा के प्रकार
 * क्वांटम - क्यूरेग, क्वॉइड, क्यूकॉन्स्ट, क्यूस्क्रैच, क्वकॉन्ड
 * क्लासिकल - आइएनटी, रियल, कॉम्प्लेक्स, बूलियन, स्ट्रिंग, वेक्टर, मैट्रिक्स, टेंसर
 * फंक्शन प्रकार
 * क्यूफ़ंक्ट - सूडो-क्लासिक ऑपरेटर। केवल आधार अवस्थाओं के क्रमपरिवर्तन को बदल सकता है।
 * ऑपरेटर - जनरल यूनिटरी ऑपरेटर। ये आयाम बदल सकते हैं।
 * प्रोसीजर - इस फंक्शन के अंदर माप, प्रिंट और डंप को कॉल कर सकते हैं। यह फंक्शन गैर-इन्वेर्टिबल नहीं है।
 * बिल्ट-इन फंक्शन्स
 * क्वांटम
 * क्यूफंक्ट - फैनआउट, स्वैप, पर्म2, पर्म4, पर्म8, नॉट, सीनॉट
 * ऑपरेटर - मैट्रिक्स2x2, मैट्रिक्स4x4, मैट्रिक्स8x8, रोट, मिक्स, एच, सीफेज, स्क्वर्टनॉट, एक्स, वाई, जेड, एस, टी
 * प्रोसीजर - मेजर, डंप, रीसेट
 * क्लासिकल
 * अंकगणित - साइन, कॉस, टैन, लॉग, एसक्यूआरटी, ...
 * कॉम्प्लेक्स - रे, आईएम, कॉन्ज

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

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