2009-08-31 13 views
6

लिखने के लिए ऑनलाइन संसाधन शैक्षिक उद्देश्यों के लिए मैं एक पार्सर जनरेटर लिखना चाहता हूं, और सोच रहा था कि कुछ अच्छे ऑनलाइन संसाधन या ट्यूटोरियल हैं जो बताते हैं कि एक कैसे लिखना है। जैक क्रेन्शॉ द्वारा "लेट्स बिल्ड ए कंपाइलर" की तर्ज पर कुछ।एक पार्सर जनरेटर

मैं एलआर (1) व्याकरण के लिए पार्सर जेनरेटर लिखना चाहता हूं।

मुझे कार्रवाई और गेटो टेबल बनाने के पीछे सिद्धांत की सभ्य समझ है, लेकिन कुछ संसाधन चाहते हैं जो इसे लागू करने में मेरी सहायता करेगी।

पसंदीदा भाषाएं सी/सी ++, जावा हैं, हालांकि अन्य भाषाएं ठीक हैं।

धन्यवाद।

उत्तर

8

मैं दूसरों के साथ सहमत हूं, ड्रैगन पुस्तक एलआर पार्सिंग के लिए अच्छी पृष्ठभूमि है।

MetaII Compiler Tutorial

:

आप पुनरावर्ती डिसेंट पारसर्स में रुचि रखते हैं, एक अत्यधिक मज़ा शिक्षण अनुभव इस वेबसाइट, जो अपने आप को और अन्य भाषाओं संकलन कर सकते हैं जो एक पूरी तरह से आत्म निहित संकलक प्रणाली के निर्माण से अवगत है

यह सब वैल शोर्रे द्वारा एक अद्भुत छोटे 10-पेज तकनीकी पेपर पर आधारित है: मेटा II: ई सिंटेक्स-ओरिएंटेड कंपाइलर लेखन भाषा ईमानदार से ईश्वर 1 9 64 तक। मैंने सीखा था कि 1 9 70 में इस पीठ से कंपाइलर्स कैसे बनाया जाए। एक दिमाग उड़ाने वाला क्षण होता है जब आप आखिरकार संकलित करते हैं कि संकलक खुद को कैसे पुन: उत्पन्न कर सकता है ....

मुझे अपने कॉलेज के दिनों से वेबसाइट लेखक पता है, लेकिन वेबसाइट के साथ कुछ लेना देना नहीं है।

1

वास्तव में ऑनलाइन नहीं है, लेकिन Dragon Book में एलआर पार्सिंग की काफी विस्तृत चर्चा है।

2

यदि आप पाइथन मार्ग जाना चाहते हैं तो मैं निम्नलिखित की अनुशंसा करता हूं।

मैं इन दोनों को पाया है अत्यंत उपयोगी होने के लिए और पॉल McGuire pyparsing के लेखक आप मदद जब आप समस्या में पड़ पर सुपर है। पाइथन में पाठ प्रसंस्करण पुस्तक आपके उंगली युक्तियों के लिए एक आसान संदर्भ है और पार्सर बनाने का प्रयास करते समय आपको सही दिमाग में लाने में मदद करता है।

मैं यह भी इंगित करता हूं कि एक ओओ भाषा भाषा पार्सिंग इंजन के रूप में बेहतर अनुकूल है क्योंकि यह एक्स्टेंसिबल है और पॉलिमॉर्फिज्म इसे करने का सही तरीका है (IMHO)। "Xyz के अंत में अर्धविराम की तलाश" के बजाए राज्य मशीन के मामले में समस्या को देखते हुए यह दिखाएगा कि आपका पार्सर अंत में अधिक मजबूत हो जाता है।

आशा है कि मदद करता है!

0

मुझे एलआर पार्सर्स लिखने से पहले रिकर्सिव-मूल पार्सर्स लिखना सीखना आसान लगता है। अच्छी तरह से ईमानदार होने के लिए, कई वर्षों के लेखन पार्सर्स के बाद, मुझे कभी भी एलआर पार्सर लिखना जरूरी नहीं मिला।

मैंने हाल ही में कोडप्रोजेक्ट पर एक ट्यूटोरियल लिखा है जिसे Implementing Programming Language Tools in C# 4.0 कहा जाता है जो पुनरावर्ती मूल पार्सिंग तकनीकों का वर्णन करता है।

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