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

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

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

सिंटेक्स

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

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

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