2008-09-30 8 views
19

मैं एक विशेषज्ञ सी # 3/.NET 3.5 प्रोग्रामर System.Reflection.Emit.DynamicMethod का उपयोग कर codegen कुछ क्रम शुरू कर करने के लिए देख रहा हूँ क्या कर रहे हैं। मुझे आईएल से घनिष्ठ परिचित होने के बाद अगले स्तर तक जाना पसंद है।सीआईएल (MSIL) सीखने के लिए सबसे अच्छा संसाधनों

कोई पॉइंटर्स (इच्छित इरादा)?

उत्तर

5

इसे सीखने का सबसे अच्छा तरीका है, जिसे आप समझते हैं उसे लिखना है, फिर इसे बनाए गए आईएल को देखें। इसके अलावा, आप जो कर रहे हैं उसके आधार पर, आप आईएल उत्सर्जित करने के बजाय अभिव्यक्ति पेड़ का उपयोग कर सकते हैं, और फिर जब आप अभिव्यक्ति पेड़ों को संकलित करते हैं, तो माइक्रोसॉफ्ट के उन स्मार्ट लोग आईएल के लिए आईएल बनाते हैं।

+0

अभिव्यक्ति पेड़ एफटीडब्ल्यू! उस बारे में सोचा नहीं था! धन्यवाद! – TheSoftwareJedi

3

Expert .NET 2.0 IL Assembler. हालांकि इस पुस्तक में एक छोटे से अब दिनांकित किया जा सकता है, यह अभी भी मेरे लिए एक महान सिंहावलोकन था।

5

.NET Reflector आईएल सी #/VB.NET द्वारा उत्पादित की जांच के लिए बहुत अच्छा है।

यह एक अद्भुत शिक्षण उपकरण है।

+0

मैं हर समय इसका उपयोग करता हूं, लेकिन इसे सी # के लिए अपनाना है - बहुत अच्छी सलाह, धन्यवाद! – TheSoftwareJedi

5

ECMA 335 विनिर्देश डाउनलोड यहाँ स्वतंत्र रूप से उपलब्ध है: http://www.ecma-international.org/publications/standards/Ecma-335.htm

विभाजन तृतीय MSIL से निपटने के लिए सबसे अधिक प्रासंगिक है, लेकिन मैं दृढ़ता के रूप में यह होगा किसी भी नेट डेवलपर के लिए विभाजन की सिफारिश मैं भी था मंच की समझ को काफी मजबूत करें।

+0

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

6

डैरेन के जवाब के अलावा, मैं चुनने का सुझाव देते या एक खिलौना भाषा की खोज करने, और इसके लिए एक सरल संकलक लेखन चाहते हैं। कुछ ऐसी चीज चुनें जिसके लिए बीएफ या स्टैक-आधारित भाषा जैसे छोटे पार्सिंग की आवश्यकता होती है, और आप पाएंगे कि एक कंपाइलर लिखना वास्तव में ऐसा लगता है।

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