संदर्भ-मुक्त व्याकरण के लिए निम्न एक्सटेंशन पर विचार करें जो नियमों को बाएं हाथ में रखने की अनुमति देता है, गैर-टर्मिनल के दाईं ओर एक (या अधिक) टर्मिनल। यही है, फॉर्म के नियम:सीएफजी में विस्तार, यह क्या है?
A b -> ...
दाएं हाथ की तरफ संदर्भ-मुक्त व्याकरण की तरह कुछ भी हो सकता है। विशेष रूप से, यह आवश्यक नहीं है, दाएं हाथ की तरफ अंत में एक ही टर्मिनल प्रतीक होगा। उस स्थिति में, यह एक्सटेंशन संदर्भ-संवेदनशील होगा। लेकिन टर्मिनल सिर्फ एक संदर्भ नहीं है। कभी-कभी, इस टर्मिनल को "पुशबैक" कहा जाता है।
स्पष्ट रूप से, यह अब CFG (टाइप -2) नहीं है। इसमें टाइप -1 शामिल है। लेकिन यह क्या हैं? वास्तव में पहले से ही 0 टाइप करें?
इस विशेष विस्तार को Prolog में Definite Clause ग्रामर dcg में अनुमति दी गई है। (गलतफहमी से बचने के लिए, मैं यहां प्रोलॉग के पूर्ण एक्सटेंशन पर विचार नहीं करता हूं। मैं मानता हूं कि टर्मिनल एक सीमित वर्णमाला से आते हैं और मनमानी शर्तों के बारे में नहीं मानते हैं, मैं भी प्रोलॉग के अतिरिक्त तर्कों पर विचार नहीं करता जिन्हें डीसीजी में अनुमति है, जो कि टाइप- । 0 पहले से ही)
संपादित करें: यहाँ विस्तार वर्णन करने के लिए एक सरल तरीका है: प्रपत्र की एक CFG नियम
A b -> <epsilon>
आप कैसे जानते हैं कि पुश-बैक ए बी -> ... नियम से मेल खाता है? क्यों नहीं बी -> ...? –
@ कूकीमोन्स्टर: यही है कि कॉलमरौयर का औपचारिकता यही है। – false
विशेष रूप से हाथ में किसी भी संदर्भ के बिना, जरूरी नहीं है। यह भी एक आम आदमी हो सकता है। –