के साथ लेखन LLVM tutorials में सरल जेआईटी कंपाइलर लिखने का निर्देश है। दुर्भाग्यवश, इस ट्यूटोरियल में लेक्सर और पार्सर मैन्युअल रूप से लिखा गया है। मैं सोच रहा था, ऐसा समाधान सीखने के उद्देश्यों के लिए अच्छा है लेकिन यह जटिल, उत्पादन तैयार कंपाइलर लिखने के लिए उपयुक्त नहीं है। ऐसा लगता है कि जीसीसी और कुछ अन्य "बड़े कंपाइलर" हाथ लिखे गए हैं। लेकिन मुझे लगता है कि, ये सभी पार्सर जनरेटर अपने संकलक लिखते समय एक बड़ा बढ़ावा देते हैं (विशेष रूप से जब आप इसे अकेले कर रहे हैं, लोगों की टीम के बिना)।एलएलवीएम जेआईटी पार्सर बायिसन/एंटलर/पैक्रेट/एल्खाउंड/
क्या जेआईटी कंपाइलर बनाने के लिए एलएलवीएम के साथ एक मौजूदा पार्सर जनरेटर जैसे बाइसन/एंटर/पैक्रेट/एल्खाउंड इत्यादि का उपयोग करना संभव है? मैं अभिव्यक्ति के साथ लगातार पार्सर (शुरुआत में नहीं) को "फ़ीड" करने में सक्षम होना चाहता हूं और उन्हें रनटाइम में संकलित करना चाहता हूं।
अतिरिक्त मुझे "सर्वश्रेष्ठ, आधुनिक" पार्सर जेनरेटर (इस तरह: https://stackoverflow.com/questions/428892/what-parser-generator-do-you-recommend) के बारे में बहुत सारे प्रश्न मिल गए हैं। यदि एलएलवीएम जेआईटी कंपाइलर बनाने के लिए इन उपकरणों का उपयोग करना संभव है, तो मैं किसी भी अतिरिक्त संकेत और अनुशंसा के लिए आभारी हूं, जो इस विशेष मामले में प्रदर्शन और लचीलापन के मामले में कौन सा उपकरण सबसे अच्छा होगा।
"ऐसा समाधान सीखने के उद्देश्यों के लिए अच्छा है लेकिन यह जटिल, उत्पादन तैयार कंपाइलर लिखने के लिए उपयुक्त नहीं है" - एचएम। मैंने हमेशा सोचा कि जीसीसी एक जटिल और उत्पादन तैयार कंपाइलर था। जो कुछ भी ... –
जीसीसी शुरुआत में बाइसन का उपयोग कर रहा था, लेकिन आप सही हैं - मैं इसे अपने प्रश्न में ठीक कर रहा हूं। लेकिन वास्तव में, यदि संभव हो तो मुझे इस कार्य को सरल बनाने के लिए जनरेटर का उपयोग करना अच्छा लगेगा। –
यदि कुछ भी है, तो मैं कहूंगा कि इसके विपरीत यह सच है: yacc, bison, et al, सीखने के उद्देश्यों के लिए उपयुक्त हैं और ऐसे में, लेकिन गंभीर उत्पादन कार्य के लिए, एक हाथ से लिखित पार्सर आवश्यकताओं को पूरा करने का एकमात्र तरीका हो सकता है। –