वाला प्रलेखन के अनुसार: "0.3.1 से पहले, वाला का पार्सर क्लासिक फ्लेक्स स्कैनर और बाइसन एलएएलआर पार्सर संयोजन था। लेकिन commit eba85a के रूप में, पार्सर एक हाथ से तैयार किए गए रिकर्सिव वंश पार्सर है।" मेरा सवाल है: क्यों?क्यों कुछ कंपाइलर्स पार्सर जनरेटर पर हाथ से तैयार पार्सर पसंद करते हैं?
प्रश्न किसी भी कंपाइलर को संबोधित किया जा सकता है जो पार्सर जनरेटर का उपयोग नहीं कर रहा है। पारसर जनरेटर से हस्तनिर्मित पार्सर तक इस तरह के कदम के लिए पेशेवर और विपक्ष क्या हैं? कंपाइलर्स के लिए पार्सर जेनरेटर (बायसन, एएनटीएलआर) का उपयोग करने के नुकसान क्या हैं?
एक साइड टिप्पणी के रूप में: मुझे विशेष रूप से वाला में दिलचस्पी है क्योंकि मुझे आधुनिक सुविधाओं और साफ वाक्यविन्यास के साथ भाषा रखने का विचार पसंद है लेकिन "मूल" और "अप्रबंधित" उच्च स्तरीय भाषा (सीए के मामले में सी))। मुझे अभी तक केवल वैला मिला है। मैं वाला (या इसी तरह की भाषा) को C++ (Qt libs द्वारा समर्थित) के लिए संकलित करके मजा करने की सोच रहा हूं। लेकिन चूंकि मैं पूरी तरह से नई भाषा का आविष्कार नहीं करना चाहता हूं, इसलिए मैं कुछ मौजूदा व्याकरण लेने की सोच रहा हूं। जाहिर है हाथ से तैयार किए गए पार्सर्स ने औपचारिक व्याकरण नहीं लिखा है जिसका मैं पुन: उपयोग कर सकता हूं। इस विचार पर आपकी टिप्पणियां आपका स्वागत है (क्या पूरा विचार मूर्खतापूर्ण है?)।
क्या आपने जुर्ग बिल्टर (प्रतिबद्धता के लेखक) से पूछा है? –
हमम, नहीं, मैंने नहीं किया है। मैं उसे पहुंचने की कोशिश करूंगा। मैं इसे और अधिक सामान्य बनाने के लिए अपने प्रश्न का शीर्षक बदल रहा हूं। – vladimir
संभावित रूप से हाथ से क्राफ्टिंग एक पार्सर को तेज/अधिक स्थान कुशल बनाने के लिए बनाया जा सकता है, क्योंकि इसे सामान्य नहीं होना चाहिए और अधिक विशिष्ट चाल का उपयोग करने में सक्षम हो सकता है। – Patashu