2012-07-15 21 views
5

पर फ्रंटेंड मैं एलएलवीएम आधारभूत संरचना के आधार पर एक कंपाइलर विकसित करने की कोशिश कर रहा हूं। मेरी भाषा में सी सी वाक्यविन्यास है और इसलिए मैं मौजूदा सी कंपाइलर्स का लाभ उठाना चाहता हूं। फिलहाल मैं फ्रंटेंड (लेक्सिकल विश्लेषण, पार्सिंग) पर ध्यान केंद्रित कर रहा हूं, लेकिन मैं उलझन में हूं कि कौन सी फ्रंटेंड सबसे अच्छा दृष्टिकोण होगा। Clang, llvm-gcc या पारंपरिक फ्लेक्स/बाइसन उपकरण?एलएलवीएम-आधारित कंपाइलर

मुझे सबसे सरल समाधान में विशेष रुचि है जो मुझे मेरे कंपाइलर के बाद के चरणों के लिए एलएलवीएम आईआर कोड उत्पन्न करने की अनुमति देगा।

+0

आप अपने खुद के पार्स और अर्थ विश्लेषण, LLVM आईआर पैदा कर रहे हैं होगा काफी आसान हो। यदि आप सी सिंटैक्स का एक बड़ा हिस्सा उधार लेना चाहते हैं, तो आप क्लैंग जैसे मौजूदा फ्रंटएंड का पुन: उपयोग कर सकते थे। अन्यथा यह इसके लायक नहीं है, एक बार आपके पास एक वैध एएसटी मिलने के बाद आईआर उत्पन्न करना तुच्छ है। –

+0

धन्यवाद। एएसटी से आईआर उत्पन्न करने के लिए मुझे क्या उपयोग करना चाहिए? –

+0

केवल सरल प्रतिस्थापन नियमों का उपयोग करें - एलएलवीएम कैलिडोस्कोप उदाहरण देखें। –

उत्तर

2

आप हाथ से सब कुछ कोड करने के लिए चाहते हैं, तो मैं तुम्हें LLVM ट्यूटोरियल बहुरूपदर्शक recommand:

+0

क्या कोई स्रोत कोड उदाहरण है? टेक्स्ट से स्रोत को समझना मेरे लिए आसान है। – kravemir

+0

वैसे स्रोत कोड भी ट्यूटोरियल में प्रदान किया जाता है: http://llvm.org/docs/tutorial/LangImpl8.html – Phong

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