سؤال

وأنا خبير C # 3 / الصافي 3.5 مبرمج تبحث لبدء القيام ببعض وقت codegen باستخدام System.Reflection.Emit.DynamicMethod. أحب لنقل ما يصل إلى المستوى التالي قبل أن تصبح مألوفة وثيقا مع IL.

وأي مؤشرات (يقصد التورية)؟

هل كانت مفيدة؟

المحلول

وأفضل طريقة لمعرفة ذلك، هو أن أكتب شيئا أن تفهم، ثم ننظر إلى IL خلقت. أيضا، اعتمادا على ما تقومون به، يمكنك استخدام أشجار التعبير بدلا من انبعاث IL، ثم عند ترجمة أشجار التعبير، هؤلاء الرجال الذكية في مايكروسوفت خلق IL ليا.

نصائح أخرى

وبالإضافة إلى الإجابة دارين، وأنا أقترح قطف أو اختراع لغة لعبة، والكتابة مترجم بسيط لذلك. اختيار ما يتطلب الاعراب قليلا، مثل BF أو لغة القائم على كومة، وستجد أن كتابة مترجم هو أبسط فعلا مما يبدو عليه.

. NET العاكس تعتبر كبيرة بالنسبة لدراسة IL التي تنتجها C # /VB.NET.

وإنها أداة تعليمية رائعة.

ومواصفات ECMA 335 هي متاحة بحرية للتحميل هنا: http://www.ecma-international.org/publications/standards/Ecma -335.htm

والتقسيم الثالث هو الأكثر ملاءمة للتعامل مع MSIL، ولكن أود أن نوصي بشدة تقسيم I فضلا عن أي مطور .NET كما أنه سيعزز كثيرا فهم من المنصة.

الخبراء الصافي 2.0 IL مجمع. على الرغم من أن هذا الكتاب قد يكون بتاريخ قليلا الآن، كان لا يزال لمحة رائعة بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top