मैं कई वर्षों से प्रोग्रामिंग कर रहा हूं, लेकिन एक कार्य जो अभी भी मुझे लंबे समय तक ले जाता है, वह है एक पार्सर के लिए एक व्याकरण निर्दिष्ट करना, और इस अत्यधिक प्रयास के बाद भी, मुझे कभी भी यकीन नहीं है कि मैं जिस व्याकरण के साथ आया हूं वह अच्छा है ( "अच्छा" के किसी भी उचित उपाय द्वारा)।
मुझे उम्मीद नहीं है कि एक व्याकरण को निर्दिष्ट करने की प्रक्रिया को स्वचालित करने के लिए एक एल्गोरिथ्म है, लेकिन मुझे आशा है कि समस्या को संरचना करने के तरीके हैं जो मेरे वर्तमान दृष्टिकोण के अनुमान और परीक्षण और त्रुटि को खत्म करते हैं।
मेरा पहला विचार पार्सर्स के बारे में पढ़ना है, और मैंने इनमें से कुछ किया है, लेकिन मैंने इस विषय पर जो कुछ भी पढ़ा है, वह व्याकरण को दिए गए (या तुच्छ रूप से पर्याप्त) के रूप में लेता है कि कोई इसे निरीक्षण द्वारा निर्दिष्ट कर सकता है), और उस पर ध्यान केंद्रित करता है एक व्याकरण में इस व्याकरण का अनुवाद करने की समस्या। मैं पहले से ही समस्या में दिलचस्पी रखता हूं: पहली जगह में व्याकरण को कैसे निर्दिष्ट किया जाए।
मैं मुख्य रूप से एक व्याकरण निर्दिष्ट करने की समस्या में दिलचस्पी रखता हूं जो औपचारिक रूप से ठोस उदाहरणों (सकारात्मक और नकारात्मक) के संग्रह का प्रतिनिधित्व करता है। यह नया सिंटेक्स डिजाइन करने की समस्या से अलग है । इस भेद को इंगित करने के लिए मैकनील का धन्यवाद।
मैंने कभी भी एक व्याकरण और एक वाक्य रचना के बीच के अंतर की सराहना नहीं की थी, लेकिन अब जब मैं इसे देखना शुरू कर रहा हूं, तो मैं यह कहकर अपनी पहली स्पष्टीकरण को तेज कर सकता हूं कि मैं मुख्य रूप से एक व्याकरण को निर्दिष्ट करने की समस्या में दिलचस्पी रखता हूं जो इसे लागू करेगा पूर्वनिर्धारित सिंटैक्स: यह सिर्फ इतना होता है कि मेरे मामले में, इस सिंटैक्स का आधार आमतौर पर सकारात्मक और नकारात्मक उदाहरणों का एक संग्रह है।
पार्सर के लिए व्याकरण कैसे निर्दिष्ट किया जाता है? क्या एक पुस्तक या संदर्भ है जो कि सर्वोत्तम प्रथाओं, डिजाइन विधियों और किसी पार्सर के लिए एक व्याकरण निर्दिष्ट करने के बारे में अन्य उपयोगी जानकारी का वर्णन करने के लिए वास्तविक मानक है? पार्सर व्याकरण के बारे में पढ़ते समय मुझे किन बिंदुओं पर ध्यान देना चाहिए?