कांटैक्स्ट फ्री लैंग्वेज

औपचारिक लैंग्वेज के सिद्धांत में, कांटैक्स्ट फ्री लैंग्वेज (सीएफएल) कांटैक्स्ट फ्री ग्रामर (सीएफजी) द्वारा उत्पन्न होने वाली औपचारिक लैंग्वेज है।

प्रोग्रामिंग लैंग्वेज में कांटैक्स्ट फ्री लैंग्वेज के कई अनुप्रयोग होते हैं, विशेष रूप से अधिकांश अंकगणितीय अभिव्यक्तियाँ कांटैक्स्ट फ्री ग्रामर द्वारा उत्पन्न होती हैं।

कांटैक्स्ट फ्री ग्रामर
विभिन्न कांटैक्स्ट फ्री ग्रामर ही कांटैक्स्ट फ्री लैंग्वेज उत्पन्न कर सकते हैं। इस प्रकार की लैंग्वेज का वर्णन करने वाले कई व्याकरणों की तुलना करके लैंग्वेज के आंतरिक गुणों को किसी विशेष व्याकरण के बाहरी गुणों से अलग किया जा सकता है।

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

उदाहरण
$$L = \{a^nb^n:n\geq1\}$$ कांटैक्स्ट फ्री लैंग्वेज का उदाहरण है, जिसमें सभी गैर-रिक्त सम-लंबाई वाले तारों की लैंग्वेज, जिनके पूरे $a$'s का यह पहला भाग हैं, और जिसके पूरे दूसरे भाग $b$'एस हैं। यहाँ पर $L$ व्याकरण द्वारा $$S\to aSb ~|~ ab$$ उत्पन्न होता है,

यह लैंग्वेज रेगुलर लैंग्वेज नहीं है, इसे पुशडाउन ऑटोमेटा के आधार पर औपचारिक को-लैंग्वेज द्वारा स्वीकार किया जाता है, जिसके आधार पर $$M=(\{q_0,q_1,q_f\}, \{a,b\}, \{a,z\}, \delta, q_0, z, \{q_f\})$$ के समान रखा जाता हैं, जहाँ $$\delta$$ को इस प्रकार परिभाषित किया गया है:
 * $$\begin{align}

\delta(q_0, a, z) &= (q_0, az) \\ \delta(q_0, a, a) &= (q_0, aa) \\ \delta(q_0, b, a) &= (q_1, \varepsilon) \\ \delta(q_1, b, a) &= (q_1, \varepsilon) \\ \delta(q_1, \varepsilon, z) &= (q_f, \varepsilon) \end{align}$$ असंदिग्ध सीएफएल सभी सीएफएल का उचित उपसमूह हैं: इसके आधार पर स्वाभाविक रूप से अस्पष्ट लैंग्वेज सीएफएल हैं। इसका स्वाभाविक रूप से अस्पष्ट सीएफएल का उदाहरण संघ $$\{a^n b^m c^m d^n | n, m > 0\}$$ साथ $$\{a^n b^n c^m d^m | n, m > 0\}$$ है, यह मुख्य रूप से सेट संदर्भ-मुक्त है, क्योंकि दो कांटैक्स्ट फ्री लैंग्वेज का मिलन सदैव संदर्भ-मुक्त होता है। अपितु (गैर-संदर्भ-मुक्त) उपसमुच्चय में स्ट्रिंग्स $$\{a^n b^n c^n d^n | n > 0\}$$ को स्पष्ट रूप से पार्स करने की कोई विधि नहीं है, जो इन दोनों लैंग्वेजेस का प्रतिच्छेदन करती है।

डाइक लैंग्वेज
डाइक लैंग्वेज व्याकरण $$S\to SS ~|~ (S) ~|~ \varepsilon$$ द्वारा उत्पन्न होती है।

कांटैक्स्ट फ्री पार्सिंग
लैंग्वेज की संदर्भ-मुक्त प्रकृति पुशडाउन ऑटोमेटा के साथ पार्स करना सरल बनाती है।

सदस्यता समस्या का उदाहरण निर्धारित करना अर्ताथ स्ट्रिंग $$w$$ दी गई है, जहाँ पता लगाया जाता हैं कि क्या $$w \in L(G)$$ के समान हैं। जहाँ $$L$$ किसी दिए गए व्याकरण द्वारा उत्पन्न होने वाले $$G$$ लैंग्वेज के समान है, इसे मान्यता के रूप में भी जाना जाता है। इसके आधार पर चॉम्स्की सामान्य रूप व्याकरण के लिए संदर्भ-मुक्त मान्यता लेस्ली वैलिएंट द्वारा दिखाई गई थी। इस प्रकार लेस्ली जी. वैलिएंट को बूलियन आव्यूह गुणन के लिए कम किया जा सकता है, इस प्रकार इसकी जटिलता बिग ओ नोटेशन की ऊपरी सीमा को विरासत में मिली है।2.3728596).

इसके विपरीत, लिलियन ली (कंप्यूटर वैज्ञानिक) ने O(n)3−ε दिखाया है, जिसके आधार पर बूलियन आव्यूह गुणन को O(n)3−3ε तक कम किया जा सकता है, इसके फल्स्वरूप सीएफजी पार्सिंग के लिए इस प्रकार बाद के लिए कुछ प्रकार की निचली सीमा स्थापित करता है।

कांटैक्स्ट फ्री लैंग्वेज के व्यावहारिक उपयोग के लिए इनहैरिटेड ट्री तैयार करने की भी आवश्यकता होती है, जो उस संरचना को प्रदर्शित करता है जिसे व्याकरण दिए गए स्ट्रिंग के साथ जोड़ता है। इस ट्री के उत्पादन की प्रक्रिया को पदच्छेद कहा जाता है। इससे ज्ञात होने वाले पार्सर्स में समय जटिलता होती है जो पार्स की गई स्ट्रिंग के आकार में घन होती है।

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

कांटैक्स्ट फ्री लैंग्वेज का विशेष उपवर्ग नियतात्मक कांटैक्स्ट फ्री लैंग्वेजएं हैं, जिन्हें नियतात्मक पुशडाउन ऑटोमेटा द्वारा स्वीकृत लैंग्वेजेस के सेट के रूप में परिभाषित किया गया है, और एलआर पार्सर या एलआर (के) पार्सर द्वारा पार्स किया जा सकता है।

व्याकरण और पार्सर के वैकल्पिक दृष्टिकोण के रूप में अभिव्यक्ति व्याकरण को पार्स करना भी देखें।

विवृत गुण
कांटैक्स्ट फ्री लैंग्वेज का वर्ग निम्नलिखित परिचालनों के अनुसार विवृत (गणित) है। अर्थात्, यदि L और पी कांटैक्स्ट फ्री लैंग्वेजएँ हैं, तो निम्नलिखित लैंग्वेजएँ भी संदर्भ-मुक्त हैं:
 * संघ (सेट सिद्धांत) $$L \cup P$$ जिसमें L और P का संबंध हैं।
 * L का व्युत्क्रम होता हैं
 * संयोजन $$L \cdot P$$ जिसमें L और P का संबंध होता हैं।
 * क्लेन स्टार $$L^*$$ L का हैं।
 * छवि $$\varphi(L)$$ स्ट्रिंग ऑपरेशंस स्ट्रिंग होमोमोर्फिज्म के अनुसार L का $$\varphi$$ हैं।
 * छवि $$\varphi^{-1}(L)$$ स्ट्रिंग ऑपरेशंस स्ट्रिंग होमोमोर्फिज्म के अनुसार L का $$\varphi^{-1}$$हैं।
 * वृत्ताकार परिवर्तन L (लैंग्वेज) के अनुप्रयोग $$\{vu : uv \in L \}$$) हैं।
 * L का उपसर्ग समापन (L से स्ट्रिंग के सभी उपसर्ग कंप्यूटर विज्ञान) का सेट हैं।
 * औपचारिक लैंग्वेज का भागफल L/R का L द्वारा नियमित लैंग्वेज R हैं।

प्रतिच्छेदन, पूरक और अंतर के अंतर्गत असंबद्धता
कांटैक्स्ट फ्री लैंग्वेजएँ प्रतिच्छेदन के अंतर्गत विवृत नहीं होती हैं। इसे लैंग्वेजेस को $$A = \{a^n b^n c^m \mid m, n \geq 0 \}$$ और $$B = \{a^m b^n c^n \mid m,n \geq 0\}$$ से लेकर देखा जा सकता है, जो दोनों से संदर्भ-मुक्त हैं। उनका प्रतिच्छेदन $$A \cap B = \{ a^n b^n c^n \mid n \geq 0\}$$ है, जिसे कांटैक्स्ट फ्री लैंग्वेज के लिए पंपिंग लेम्मा द्वारा गैर-संदर्भ-मुक्त दिखाया जा सकता है। इसके परिणामस्वरूप कांटैक्स्ट फ्री लैंग्वेज को पूरकता के अनुसार विवृत नहीं किया जा सकता है, क्योंकि किसी भी लैंग्वेज A और B के लिए, उनके प्रतिच्छेदन को संघ और पूरक $$A \cap B = \overline{\overline{A} \cup \overline{B}} $$ द्वारा व्यक्त किया जा सकता है। इस प्रकार विशेष रूप से, कांटैक्स्ट फ्री लैंग्वेज को अंतर के अंतर्गत विवृत नहीं किया जा सकता है, क्योंकि पूरक को अंतर $$\overline{L} = \Sigma^* \setminus L$$ द्वारा व्यक्त किया जा सकता है।

चूंकि, यदि L कांटैक्स्ट फ्री लैंग्वेज है और D नियमित लैंग्वेज है तो दोनों का प्रतिच्छेदन $$L\cap D$$ होता है, और उनका अंतर $$L\setminus D$$ कांटैक्स्ट फ्री लैंग्वेजएँ हैं।

निर्णायकता
औपचारिक लैंग्वेज सिद्धांत में, नियमित लैंग्वेजेस के बारे में प्रश्न आमतौर पर निर्णय लेने योग्य होते हैं, अपितु कांटैक्स्ट फ्री लैंग्वेज के बारे में अक्सर नहीं होते हैं। यह तय करने योग्य है कि क्या ऐसी लैंग्वेज सीमित है, अपितु यह नहीं कि क्या इसमें हर संभव स्ट्रिंग उपस्थित होती है, नियमित है, इस प्रकार असंदिग्ध है, या अलग व्याकरण वाली लैंग्वेज के बराबर है।

निम्नलिखित समस्याएँ मनमाने ढंग से दिए गए कांटैक्स्ट फ्री ग्रामर A और B के लिए अनिर्णीत समस्या हैं:
 * समतुल्यता: $$L(A)=L(B)$$? है।
 * असंगति: $$L(A) \cap L(B) = \emptyset $$ ? है। चूंकि इस प्रकार कांटैक्स्ट फ्री लैंग्वेज और नियमित लैंग्वेज का प्रतिच्छेदन संदर्भ-मुक्त होता है,  इसलिए समस्या का वह प्रकार जहां B नियमित व्याकरण है, इसका निर्णय योग्य है जिसके लिए नीचे शून्यता को देख सकते हैं।
 * नियंत्रण: $$L(A) \subseteq L(B)$$ ? है। इसके आधार पर पुनः इस समस्या का वह प्रकार जहां B नियमित व्याकरण है, निर्णय योग्य है, जबकि जहां A नियमित है वह सामान्यतः नहीं है।
 * सार्वभौमिकता: $$L(A)=\Sigma^*$$? है।
 * नियमितता: $$L(A)$$ नियमित लैंग्वेज? है
 * अस्पष्टता: $$L(A)$$ अस्पष्ट? प्रत्येक व्याकरण के लिए है।

मनमानी कांटैक्स्ट फ्री लैंग्वेज के लिए निम्नलिखित समस्याएं निर्णय योग्य हैं:
 * शून्यता: कांटैक्स्ट फ्री ग्रामर A दिया गया है $$L(A) = \emptyset$$ ?
 * परिमितता: कांटैक्स्ट फ्री ग्रामर A दिया गया है $$L(A)$$ परिमित?
 * सदस्यता: कांटैक्स्ट फ्री ग्रामर जी, और शब्द दिया गया $$w$$, $$w \in L(G)$$ ? करता है, इसके आधार पर सदस्यता समस्या के लिए कुशल बहुपद-समय एल्गोरिदम CYK एल्गोरिदम और इस प्रकार अर्ली पार्सर या अर्ली की एल्गोरिदम हैं।

होपक्रॉफ्ट, मोटवानी, उल्मन (2003) के अनुसार, येहोशुआ बार-हिलेल या बार-हिलेल, पर्ल्स और शमीर के 1961 के पेपर में कांटैक्स्ट फ्री लैंग्वेज के कई मौलिक समापन और (अन)निर्णय गुणों को दिखाया गया था।

ऐसी लैंग्वेजएँ जो संदर्भ-मुक्त नहीं हैं
सेट $$\{a^n b^n c^n d^n | n > 0\}$$ संदर्भ-संवेदनशील लैंग्वेज है, अपितु इस लैंग्वेज को उत्पन्न करने वाला कोई कांटैक्स्ट फ्री ग्रामर सम्मिलित नहीं है। इसलिए संदर्भ-संवेदनशील लैंग्वेजएँ सम्मिलित हैं, जो इस प्रकार संदर्भ-मुक्त नहीं हैं। यह प्रमाणित करने के लिए कि कोई दी गई लैंग्वेज संदर्भ-मुक्त नहीं है, कोई कांटैक्स्ट फ्री लैंग्वेज के लिए पंपिंग लेम्मा का उपयोग कर सकता है, या कई अन्य विधियाँ, जैसे ओग्डेन की लेम्मा या पारिख की प्रमेय का उपयोग करते हैं।