compiler construction - Is Scalas/Haskells parser combinators sufficient? -


मैं सोच रहा हूँ कि स्केलस / हास्कैल्स पार्सर्स कंगुनेटर्स प्रोग्रामिंग भाषा को पार्स करने के लिए पर्याप्त हैं। अधिक विशेष रूप से भाषा मिनीजवा मैं वर्तमान में कंपाइलर निर्माण पढ़ रहा हूं और jflex और java कप के साथ काम करने के लिए काफी दर्दनाक है इसलिए मैं सोच रहा हूं कि मैं इसके बजाय पार्सर कंग्नेटर्स का उपयोग कर सकता / सकती हूं मिनीजवा वाक्यविन्यास बहुत छोटा है। स्काला का पार्सर एक बैकटार्किंग पार्सर है, इसलिए यह किसी भी बीएनएफ या ईएनबीएफ के साथ सौदा कर सकता है। । इसका मतलब यह भी है कि हालांकि, बढ़त के मामले हैं जहां इनपुट पढ़ने के लिए धीमे गति से धीमा हो सकता है।

यदि व्याकरण एक में बदला जा सकता है, तो आप ~ का उपयोग कर सकते हैं! ऑपरेटर को पीछे से पीछे रहना न्यूनतम है।

शायद व्याकरण को एलएल (1) में बदला जा सकता है, लेकिन लिखित रूप में, यह नहीं है। उदाहरण के लिए, देखें, अभिव्यक्ति और वक्तव्य में पहला / पहला संघर्ष है (लिंक किए गए लेख के अंत में इसे देखें)।

फिर भी, एक अकादमिक परियोजना के लिए, यह पर्याप्त है वास्तविक जीवन संकलक सामग्री के लिए, आपको तेज पार्सर्स की आवश्यकता होगी।


Comments