コマンドなどの詳細な説明を使用してCILをプログラムする方法を学ぶための優れたリソースを知っている人はいますか?私は周りを見回しましたが、特に良いものは見つかりませんでした。
3 に答える
私の棚にある唯一のCILの本は、 SergeLidinによるExpert.NET 2.0ILAssemblerです。個々のオペコードの機能または意味に関しては、System.Reflection.Emitに関するMicrosoftのドキュメントにかなり良い情報があります。また、 Reflectorを使用して既存のILを確認することは常に役立ちます。
編集: CIL(および実際には一般的なCLR)は、.NET2.0と.NET3.5の間でまったく変更されていません。基本的なランタイムは基本的に同じで、モジュロ修正とパフォーマンスの向上があります。したがって、CILレベルで利用できるものは、2.0の本にあるものよりも新しいものはありません。
Expert .NET 2.0 IL Assemblerは、作者がよく書いており、あなたが想像できるあらゆるおかしな詳細を含んでいるため、揺るぎません。彼が IL アセンブラー、逆アセンブラー、およびバリデーターを作成したことは問題ありません。何よりも、枯れ木の代わりに PDF で購入できます。
コンパイラ開発に関心のあるマゾヒストは、John Gough によるCompiling for the .NET Common Language Runtimeも楽しめます。この本は、CLR 設計から多くのアイデアを "盗み出した" 仮想マシン開発プロジェクトで非常に役に立ちました。
SergeLidinによるExpert.NET2.0ILアセンブラー
同じ本の1.1バージョンがありましたが、最新の.NETリリースでは何も見ていません。素晴らしい本です。学習プロジェクトとして、MSILでOCRコンポーネントを作成するために使用しました。
[編集]@Curtは正しいです、3.0と3.5は2.0の単なる拡張であり、私はまだそれを頭に接続していませんでした。今、私は楽しいオタクプロジェクトについて考えました...標準2.0コードの逆アセンブルを、リストのフィルタリングなどの一般的なタスクを実行する新しいLINQ/Lambdaの方法と比較してください。何らかの理由で、コンパイラだけでなく、新しいIL機能で魔法が起こっていると思いました。