2010-01-26 16 views
13

pumping lemmaregular languages और context-free languages की एक संपत्ति है।क्या "वास्तविक" भाषाओं के साथ lemmas पंप करने के कोई उदाहरण हैं?

एल = {0 n n n:: n ≥ 0}

(जो संयोगवश, नहीं एक है लेकिन सभी उदाहरण मैंने देखा है की तरह बातें कर रहे हैं संदर्भ मुक्त भाषा)।

लेकिन मुझे इसमें क्या रूचि है यह है: क्या किसी भी दूरस्थ रूप से वास्तविक या उपयोगी भाषाओं के साथ इसका उपयोग करने के कोई उदाहरण हैं? मैं कोई भी खोजने में सक्षम नहीं हूं। क्या यह उन चीजों में से एक है या बिल्कुल सैद्धांतिक मूल्य बिल्कुल व्यावहारिक अनुप्रयोग के साथ नहीं है?

+1

यह साबित करने में सक्षम है कि कोई भाषा व्यावहारिक उपयोग नियमित है या नहीं? –

+1

@ आओन: हां क्योंकि संदर्भ-मुक्त व्याकरण द्वारा किसी भाषा को वर्णित किया जा सकता है या नहीं, पार्सर जेनरेटर के लिए मूल्य है। – cletus

+0

मुझे यह जानने में थोड़ी देर लग गई कि एल संदर्भ-मुक्त भाषा क्यों नहीं है। मुझे लगता है कि उत्तर के बारे में सोचने का एक अच्छा तरीका यह है: यदि आप एन 0 लिखना चाहते हैं, तो स्टैक एन बार में कुछ जोड़कर इसका ट्रैक रखें। फिर एन 1 एस प्रिंट करने के लिए, स्टैक पर सभी वस्तुओं को हटाकर ट्रैक रखें। हालांकि, अब याद रखने का कोई तरीका नहीं है कि एन 2 को प्रिंट करने के लिए क्या था। –

उत्तर

7

एल = {0 n n: n ≥ 0} एक विषय से मुक्त भाषा जा रहा है। एक अभिव्यक्ति में

कोष्ठक मिलान यानी

एल = {(n) n: n ≥ 0} समान रूप से होना करने के लिए माना जा सकता है

+0

एर ... इनमें से कोई भी मैं "वास्तविक" भाषाओं को नहीं कहता हूं। मुझे पता है कि यह इन कृत्रिम उदाहरणों पर कैसे लागू होता है। मैं जो चाहता हूं वह कम से कम एक उदाहरण प्रोग्रामिंग भाषा या दूरस्थ रूप से "असली दुनिया" पर लागू किया जा रहा है। – cletus

+3

मिलान करने वाले कोष्ठक (या ब्रेसिज़, उद्धरण) असली दुनिया क्यों नहीं है? –

2

एक व्यावहारिक उपयोग तथ्य यह है कि हर किसी को है सी # या फोरट्रान के वाक्यविन्यास को पहचानने के लिए एक सीमित automaton बनाने की कोशिश करना बंद कर सकते हैं।

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

+0

मैं इस बात के विवरण के बाद नहीं हूं कि यह क्यों उपयोगी है लेकिन यह एबीसी या 012 के अनुक्रमों की बजाय वास्तविक भाषा पर कैसे लागू किया गया है। – cletus

+3

@cletus एक कंपाइलर डिज़ाइन करना वास्तविक दुनिया के बाहर गैर वास्तविक भाषाओं में होता है? –

1

"है उन चीजों में से एक या पूरी तरह से सैद्धांतिक मूल्य बिल्कुल व्यावहारिक अनुप्रयोग के साथ? "

एचआरएम। व्यावहारिक आवेदन क्या है? आपने बुद्धिमानी से अपने प्रश्न "कंप्यूटर-विज्ञान" को टैग किया है। तो मुझे लगता है कि अपने प्रश्न पूछने के लिए है, "यह कंप्यूटर विज्ञान के लिए व्यावहारिक है?

जो मामले में, इस सवाल का जवाब है ...

बेशक यह है की

! यह पहली तरीकों में से एक के रूप में पढ़ाया जा रहा है से परे अलग-अलग भाषा जटिलता वर्गों को वर्गीकृत करने के लिए यह दिखाता है कि केवल रनटाइम से परे गणना से संबंधित मुद्दे हैं, इस मामले में कुछ मॉडल बस कुछ कार्यों की गणना नहीं कर सकते हैं। * यह एक बहुत कम है ऑटोटाटा सिद्धांत से संबंधित औपचारिक सबूत के लिए -बॉल परिचय।

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

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

* हां, आमतौर पर रोकथाम की समस्या पहले के रूप में दिखाई जाती है, लेकिन वे इसे पहली बार कभी नहीं मिलते हैं।

शायद आपके प्रश्न की अधिक क्रूर व्याख्या के रूप में, जिसका अर्थ है "क्या सॉफ्टवेयर का कोई भी टुकड़ा वास्तव में इसका उपयोग करता है?", मेरा जवाब बिल्कुल नहीं है। यह गणना के आधार का हिस्सा है, न कि इसके अनुप्रयोगों। यह अपने अनुप्रयोगों को बर्खास्त करने के लिए नहीं है, बिलकुल नहीं। दोनों बराबर, महान मूल्य के हैं।

+1

यह एक प्यारा भाषण है और सब कुछ है लेकिन यह सवाल का जवाब नहीं देता है: मैं अपने असली उपयोग के उदाहरणों के बाद हूं। – cletus

+1

शायद आप पेड़ के लिए जंगल से चूक गए। ** शिक्षा ** या शायद आप बेहतर स्पष्टीकरण देंगे "असली दुनिया" से आपका क्या मतलब है?: पी – agorenst

4

इस अजगर कार्यक्रम मान्य है:

print ((((((((((((((((((((((((1)))))))))))))))))))))))) 

के साथ-साथ सही पक्ष पर बाईं तरफ के ( और ) की एक समान राशि के साथ अन्य सभी बराबर बयान।

आप इसे सत्यापित करने के लिए नियमित अभिव्यक्ति नहीं बना सकते हैं, इस प्रकार आपको एक पार्सर का उपयोग करना होगा।

यह सैद्धांतिक नहीं है। यही कारण है कि आप HTML का विश्लेषण करने के लिए regex का उपयोग नहीं कर सकते हैं।

संबंधित मुद्दे