2010-02-11 10 views
9

मैं एक छोटा सी # कंपाइलर लिखने के बारे में सोच रहा हूं।क्या यह सी # कंपाइलर लिखने का भी अर्थ होगा जो एलएलवीएम को लक्षित करता है?

एक विचार जो मैं कर रहा हूं वह सी # व्याकरण का सबसेट लिख रहा है, एएनटीएलआर के लिए 2.0 तक कहता है। फिर, एलएलवीएम को लक्षित करने और सी # के लिए देशी कोड कंपाइलर लिखने के लिए इसका उपयोग कर रहे हैं?

क्या यह विचार भी समझ में आता है या यह काम नहीं करेगा? क्या बीसीएल को अभी भी कॉल करने का कोई तरीका होगा?

मुझे पता है कि CCI (Common Compiler Infrastructure) है जो मुझे .NET निष्पादन योग्य बनाने में सहायता करेगा। लेकिन अगर मैं उपर्युक्त कहता हूं तो क्या मैं उत्सुक हूं?

+0

मुझे नहीं पता कि .NET के आंतरिक वास्तव में आपकी मदद करने के लिए पर्याप्त हैं, लेकिन जहां तक ​​मुझे पता है कि यह बाहरी .NET असेंबली – Earlz

+1

को कॉल करने के अलावा किसी भी प्रकार की समस्या नहीं होनी चाहिए "छोटा" परिभाषित करें। विनिर्देश * पांच सौ पेज * लंबा है। –

+2

@ एरिक लिपर्ट, माइक स्टाल, जो मुझे विश्वास है कि आपकी कंपाइलर टीम पर है, ने "ब्लू" नामक अपेक्षाकृत "छोटा" सी # कंपाइलर लिखा है जो स्वयं को अपने पहले सी # प्रोग्राम के रूप में बूटस्ट्रैप करने में सक्षम है। – KingNestor

उत्तर

1

जब तक कि आप पूरी मानक लाइब्रेरी को फिर से लिखना नहीं चाहते हैं, तब भी, यदि आप बस कुछ करने की तलाश में हैं, तो एक अलग प्रोजेक्ट ढूंढना बेहतर होगा। एक संभावित .NET बाइटकोड संकलक या एक आईएल असेंबलर लिखना होगा।

3

मोनो से पहले ही उद्धृत किया गया है, माइक्रोसॉफ्ट LLILC नामक अपने कार्यान्वयन में काम कर रहा है (यह केवल एक प्रयोग नहीं है)। तो यह बहुत समझ में आता है।

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