पार्सर सिद्धांत पर अच्छी किताबें?


9

मेरी जावा परियोजनाओं में से एक एक है parboiled का कांटा , और विपरीत कहते हैं,, antlr या JavaCC, पारसर्स कार्यावधि में उत्पन्न कर रहे हैं। उत्पन्न व्याकरण परासन अभिव्यक्ति व्याकरण हैं, या पीईजी (मुझे उनके लिए एक और शब्द "पैकेट" है)।

जबकि रनटाइम पीढ़ी जटिलता (बाइटकोड पीढ़ी को शामिल करती है), एक और पहलू पार्सर सिद्धांत से संबंधित है। जैसा कि मेरे पास है, दुर्भाग्य से, कंप्यूटर विज्ञान में कोई ठोस पृष्ठभूमि नहीं है, मेरे पास मौजूदा अवधारणाओं को मौजूदा कोड को मैप करने के लिए सैद्धांतिक ज्ञान की कमी है - इस मामले में, पार्सर्स।

क्या पार्सर पर एक अच्छी संदर्भ पुस्तक है जिसे मैं खरीद सकता हूं और पढ़ सकता हूं, या यहां तक ​​कि इंटरनेट पर लिंक भी कर सकता हूं, जो मुझे इस तरह के "मैपिंग" का निर्माण करने में मदद कर सकता है, जो मेरे खराब सैद्धांतिक ज्ञान के लिए जिम्मेदार है?

जवाबों:



3

यदि आप पार्सर्स के सिद्धांत के बारे में सीखना चाहते हैं, तो मैं इस क्लासिक पुस्तक की मात्रा 1 की सिफारिश करता हूं:

अहो, अल्फ्रेड वी।; ओलमैन, जेफरी डी।, पार्सिंग, अनुवाद और संकलन का सिद्धांत , प्रेंटिस-हॉल (1972)।


यह प्रकाशन के समय विषय पर एक विश्वकोश था। लेकिन उस समय से शोध कार्य किए जा रहे हैं।
बबौ

1

यदि आपको भाषा में अंतर नहीं आता है, तो उच्च क्रम पर्ल का अध्याय 8 सभी पार्सिंग के बारे में है, और विशेष रूप से पार्सर कॉम्बिनेटरों का उपयोग करके एक पुनरावर्ती वंश पार्सर बनाता है। यह सुलभ है (यदि आप पर्ल से डरते नहीं हैं) और यदि आप चाहें तो मुफ्त में पढ़ने के लिए उपलब्ध हैं। इसने कई वर्षों पहले तकनीक को पार्स करने में मेरी रुचि जगा दी।


0

जबकि पार्सिंग तकनीक एक बेहतरीन किताब है और मैंने कई बार कुछ हिस्सों को पढ़ा है, लेकिन इसका ध्यान एलआर पार्सिंग पर है, जो आपके लिए दिलचस्प नहीं होगा। आपके विशेष मामले में, आप पीईजी को देख रहे हैं जो विकल्प के क्रम के आधार पर बैकट्रैकिंग के साथ टॉप-डाउन पुनरावर्ती वंश पार्सिंग की तरह हैं।

मैं आपको पार्सर कॉम्बिनेटरों को देखने का सुझाव देना चाहूंगा, जो समान रणनीति का उपयोग करते हैं। आप उदाहरण के लिए इस पेपर की जांच कर सकते हैं http://research.microsoft.com/pubs/65201/parsec-paper-letter.pdf जो पार्सर कॉम्बीनेटर बनाने के लिए हास्केल का उपयोग करता है। उस अनुभाग की जांच करें try जहां वे बैकट्रैकिंग (धारा 3.4) को शामिल करते हैं।

किसी भी मामले में, आपको जो सीखने की ज़रूरत है वह है:

  • पुनरावर्ती-वंशज पार्सिंग और एलएल व्याकरण
  • तय लुकहेड बनाम अनंत लुकहेड (बैकट्रैकिंग के माध्यम से किया गया)
  • पीछे हटने की रणनीति
  • वाम-पुनरावर्ती नियमों से कैसे निपटा जाए
  • घातांक व्यवहार से बचने के लिए आंशिक परिणामों का संस्मरण
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.