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

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

यह भाषा क्वांटम कंप्यूटर के लिए प्रोग्रामिंग अवधारणाओं का पता लगाने के लिए बनाई गई थी।

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

रचनाक्रम

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

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

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