私は C# 3 / .NET 3.5 のエキスパートで、System.Reflection.Emit.DynamicMethod を使用してランタイム コード生成を開始しようとしています。IL に親しむことで、次のレベルに進みたいと思っています。
ポインタはありますか(しゃれが意図されています)?
私は C# 3 / .NET 3.5 のエキスパートで、System.Reflection.Emit.DynamicMethod を使用してランタイム コード生成を開始しようとしています。IL に親しむことで、次のレベルに進みたいと思っています。
ポインタはありますか(しゃれが意図されています)?
ダレンの答えに加えて、おもちゃの言語を選択または発明し、そのための簡単なコンパイラを作成することをお勧めします。BF やスタックベースの言語など、ほとんど解析を必要としないものを選択すると、コンパイラの作成は実際には見かけよりも簡単であることがわかります。
.NET Reflectorは、C#/VB.NET によって生成された IL を調べるのに最適です。
素晴らしい学習ツールです。
ECMA 335 仕様は、 http ://www.ecma-international.org/publications/standards/Ecma-335.htm から無料でダウンロードできます 。
パーティション III は MSIL の処理に最も適していますが、.NET 開発者にはパーティション I も強くお勧めします。これにより、プラットフォームの理解が大幅に強化されます。
それを学ぶための最良の方法は、理解できるものを書いてから、作成された IL を確認することです。また、実行内容によっては、IL を発行する代わりに式ツリーを使用できます。式ツリーをコンパイルすると、Microsoft の賢い人たちが IL を作成します。
エキスパート .NET 2.0 IL アセンブラー。この本は今では少し古いかもしれませんが、それでも私にとっては素晴らしい概要でした.