2012-03-04 4 views
7

मैं डेल्फी में शैक्षिक उद्देश्यों के लिए एक सरल संकलक लिखना चाहता हूं। मैंने कोको/आर के बारे में पढ़ा है और डेल्फी के लिए यह कार्यान्वयन पाया है: http://code.google.com/p/dcocor/। मैंने जो पढ़ा है, वह डेल्फी 200 सिंटैक्स के लिए एक पार्सर है।क्या कोको/आर एक पार्सड फ़ाइल को बाइटकोड में बदल सकता है?

पार्सड फ़ाइल को बाइटकोड में बदलने के लिए मुझे क्या करना होगा? क्या कोको/आर ऐसा कर सकता है?

मुझे फास्टस्क्रिप्ट या डीडब्ल्यूएस जैसी स्क्रिप्टिंग भाषाओं के बारे में पता है, लेकिन मैं अपने उद्देश्यों के लिए अपना खुद का प्रयास करना और लिखना चाहता हूं।

कृपया मुझे कुछ सलाह दें या चीजों को थोड़ा सा स्पष्ट करें।

+2

क्या आपने कोको/आर मैनुअल पढ़ा है? मैं वहां से शुरू करने के लिए कहूंगा। http://ssw.jku.at/Coco/Doc/UserManual.pdf –

उत्तर

7

पार्सड फ़ाइल को बाइटकोड में बदलने के लिए मुझे क्या करना होगा?

सबसे पहले, तय करें कि आप किस प्रकार का बाइटकोड चाहते हैं: JVM? LLVM? MSIL? अपना खुद का पता लगाना?

क्या कोको/आर ऐसा कर सकता है?

कोको/आर, एक पार्सर जेनरेटर रूपरेखा है यह केवल आप को परिभाषित करने और जनरेटर के लिए फ़ीड एक भाषा के लिए lexer-पार्सर उत्पन्न करता है। उसके बाद के कदम आपकी ज़िम्मेदारी है। यद्यपि ऐसी परियोजनाएं हो सकती हैं जो अस्थिर/लक्ष्य कोड उत्पन्न करने में मदद कर सकती हैं (लेकिन मुझे कोको/आर के लिए कोई नहीं मिला है)।

+1

मैं बस अपनी स्क्रिप्ट को निष्पादन योग्य कोड में कनवर्ट करना चाहता हूं - x86 EXE पूरी तरह से ठीक है। मुझे डेल्फी (http://code.google.com/p/llvm-pascal/) के लिए एक एलएलवीएम पार्सर मिला, लेकिन ऐसा लगता है कि यह बाइटकोड उत्पन्न नहीं करता है। क्या मैं कुछ भूल रहा हूँ? – Pateman

+0

यह उत्तर आपको क्या बता रहा है कि आपको अपना कोड जनरेटर लिखना होगा। –

+0

@ पेटमैन: यह प्रोजेक्ट एलएलवीएम बैकएंड के साथ एक पास्कल कंपाइलर है, निष्पादन योग्य/बाइटकोड के लिए मनमाने ढंग से लिपि नहीं है। हालांकि ऐसी कोई चीज मौजूद नहीं है। कोको/आर प्रलेखन पढ़ें यदि आप इसका उपयोग करना चाहते हैं, पार्सर क्या उत्पन्न करता है, और अपना लक्ष्य आर्क तय करने के बाद, पार्सर आपके लक्षित आर्क मूल भाषा (यानी x86 asm, llvm ir, आदि) को उत्पन्न करता है, – LeleDumbo

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