पिछले कुछ वर्षों में, "रेगेक्स" पैटर्न मिलान उस बिंदु पर अधिक से अधिक शक्तिशाली हो रहा है जहां मुझे आश्चर्य है: क्या यह वास्तव में केवल संदर्भ-संवेदनशील-व्याकरण मिलान है? क्या यह संदर्भ-मुक्त-व्याकरण मिलान का एक भिन्नता/विस्तार है? यह अभी कहां है और हम इसे क्यों नहीं कहते हैं कि पुरानी, प्रतिबंधित "नियमित अभिव्यक्ति" की बजाय?आधुनिक प्रोग्रामिंग भाषाओं में वास्तव में "संदर्भ संवेदनशील व्याकरण" में "regex" है?
उत्तर
विशेष रूप से नियमित, संदर्भ-मुक्त, या संदर्भ-संवेदनशील व्याकरण की तुलना में नियमित अभिव्यक्तियों को नियमित रूप से अधिक जटिल बनाते हैं। नाम ऐतिहासिक रूप से उगाया जाता है (कई शब्द)। विकिपीडिया में this section और पर्ल से देखें।
तरह से मैं इसे देख:
- नियमित भाषाओं:
- राज्य मशीन द्वारा मेल खाने वाले। केवल एक चर व्याकरण में वर्तमान "स्थान" का प्रतिनिधित्व करने के लिए मिलान किया जा करने के लिए इस्तेमाल किया जा सकता है: Recursion लागू नहीं किया जा सकता है
- विषय से मुक्त भाषाओं:
- ढेर मशीन द्वारा मेल खाने वाले। व्याकरण में वर्तमान "स्थान" को एक या दूसरे रूप में एक ढेर द्वारा दर्शाया जाता है। नहीं कुछ भी है कि
- संदर्भ के प्रति संवेदनशील भाषाओं से पहले हुई "याद" कर सकते हैं:
- अधिकांश प्रोग्रामिंग भाषाओं
-
सभीअधिकांश मानव भाषाओं
मैं नियमित रूप से की जानते हो अभिव्यक्ति पार्सर्स जो आपको पार्सर के सामने आने वाले किसी चीज़ के खिलाफ मिलान करने की अनुमति देता है, एक संदर्भ-से कुछ प्राप्त करना nsitive व्याकरण।
फिर भी, नियमित अभिव्यक्ति पारसर्स, हालांकि परिष्कृत वे हो सकता है, नियमों का पुनरावर्ती आवेदन है, जो विषय से मुक्त व्याकरण के लिए एक निश्चित आवश्यकता है के लिए अनुमति नहीं है।
अवधि regex, मेरी राय में, ज्यादातर वाक्य रचना उन नियमित व्याकरण (सितारों और प्रश्न चिह्न) को व्यक्त करने के लिए इस्तेमाल करने के लिए संदर्भित करता है।
लुकहेड/लुकहेंड और नेमिंग निश्चित रूप से मानक नियमित अभिव्यक्तियों के बाहर बैठकर कुछ जोड़ता है - स्मृति। तो क्या हम पीडीए स्तर पर नहीं हैं? – notnot
यह सामान्य रूप से सच नहीं है कि प्राकृतिक भाषा संदर्भ-संवेदनशील है, देखें http://www.eecs.harvard.edu/~shieber/Biblio/Papers/shieber85.pdf –
आह, यह अच्छी चीजें – notnot
आधुनिक नियमित अभिव्यक्ति कार्यान्वयन कि classic regular expression definition के नियमों को तोड़ने में सुविधाओं रहे हैं।
उदाहरण Microsoft’s .NET Balancing Group(?<
name1
-
name2
> …)
के लिए:
^(?:0(?<L>)|1(?<-L>))*(?(L)(?!))$
यह करता है से मेल खाते हैं भाषा एल ₀₁ = {ε, 01, 0011, 000,111, ...}। लेकिन यह भाषा Pumping Lemma के अनुसार नियमित नहीं है।
मुझे पता है कि यह क्लासिक रेगेक्स से परे है, लेकिन मैं सोच रहा हूं कि कितना आगे है। ऊपर फैबियन का लिंक दिलचस्प है। – notnot
- 1. क्या आधुनिक प्रोग्रामिंग भाषाओं के व्याकरण संदर्भ-मुक्त या संदर्भ-संवेदनशील हैं?
- 2. कौन सी प्रोग्रामिंग भाषाओं में नियमित व्याकरण होता है?
- 3. संदर्भ-मुक्त व्याकरण बनाम संदर्भ-व्याकरण व्याकरण?
- 4. प्रोग्रामिंग भाषाओं में समाप्ति
- 5. प्रोग्रामिंग भाषाओं में सांस्कृतिक मुद्दे
- 6. प्रोग्रामिंग भाषा व्याकरण में पिछला कॉमा का इतिहास
- 7. प्रोग्रामिंग भाषाओं में प्रतीकों की आवृत्ति
- 8. सी ++ में वास्तव में संदर्भ गणना क्या है ?,
- 9. पार्सिंग संदर्भ संवेदनशील भाषा
- 10. "इंटरफ़ेस आधारित प्रोग्रामिंग" वास्तव में क्या है?
- 11. प्रोग्रामिंग परिभाषाएं: 'बिल्डिंग' वास्तव में क्या है।
- 12. कई आउटपुट भाषाओं में मेटा प्रोग्रामिंग
- 13. प्रोग्रामिंग भाषाओं
- 14. ग्राफ़िक संदर्भ वास्तव में क्या है?
- 15. आधुनिक प्रोग्रामिंग में ASCII delimiters (2 9 -31) का उपयोग
- 16. SIMD प्रोग्रामिंग भाषाओं
- 17. कार्यात्मक भाषाओं में वास्तुकला सोच
- 18. ऑब्जेक्ट उन्मुख प्रोग्रामिंग पूरी तरह कार्यात्मक प्रोग्रामिंग संदर्भ में?
- 19. प्रोग्रामिंग भाषाओं में क्रमबद्धता अवधारणा का अर्थ क्या है?
- 20. जावा में एक संदर्भ वास्तव में क्या है?
- 21. प्रोग्रामिंग भाषाओं में 'उपयोग' या 'उपयोग' का उपयोग
- 22. गणितीय प्रोग्रामिंग भाषाओं
- 23. नियमित अभिव्यक्तियों का उपयोग कर प्रोग्रामिंग भाषाओं को सिंटैक्स-हाइलाइट करना संभव है?
- 24. प्रोग्रामिंग भाषाओं के बीच समान कार्यों का संदर्भ
- 25. जावा वास्तव में क्या है?
- 26. मैं वास्तव में जीयूआई प्रोग्रामिंग में कहीं कैसे प्राप्त करूं?
- 27. हैश वास्तव में क्या है?
- 28. डब्ल्यूपीएफ वास्तव में क्या है?
- 29. क्या आधुनिक डीबीएमएस में शॉर्ट-सर्किट बूलियन मूल्यांकन शामिल है?
- 30. मेमोरी में संवेदनशील डेटा
आप 'नियमित language' और' नियमित expression' के बीच अंतर की व्याख्या कर सकते हैं? –
क्या यह वास्तव में सीएसजी से अधिक शक्तिशाली है? क्या आप एक उदाहरण दे सकते हैं? – notnot
नियमित व्याकरण द्वारा नियमित भाषा का वर्णन किया जा सकता है (http://en.wikipedia.org/wiki/Regular_grammar देखें), जबकि नियमित अभिव्यक्ति एक पैटर्न मिलान करने वाली भाषा है जो कम प्रतिबंधित है और इसलिए प्रक्रिया के लिए अधिक जटिल है। –