9

コマンドなどの詳細な説明を使用してCILをプログラムする方法を学ぶための優れたリソースを知っている人はいますか?私は周りを見回しましたが、特に良いものは見つかりませんでした。

4

3 に答える 3

19

私の棚にある唯一のCILの本は、 SergeLidinによるExpert.NET 2.0ILAssemblerです。個々のオペコードの機能または意味に関しては、System.Reflection.Emitに関するMicrosoftのドキュメントにかなり良い情報があります。また、 Reflectorを使用して既存のILを確認することは常に役立ちます。

編集: CIL(および実際には一般的なCLR)は、.NET2.0と.NET3.5の間でまったく変更されていません。基本的なランタイムは基本的に同じで、モジュロ修正とパフォーマンスの向上があります。したがって、CILレベルで利用できるものは、2.0の本にあるものよりも新しいものはありません。

于 2008-09-04T23:09:31.970 に答える
4

Expert .NET 2.0 IL Assemblerは、作者がよく書いており、あなたが想像できるあらゆるおかしな詳細を含んでいるため、揺るぎません。彼が IL アセンブラー、逆アセンブラー、およびバリデーターを作成したことは問題ありません。何よりも、枯れ木の代わりに PDF で購入できます。

コンパイラ開発に関心のあるマゾヒストは、John Gough によるCompiling for the .NET Common Language Runtimeも楽しめます。この本は、CLR 設計から多くのアイデアを "盗み出した" 仮想マシン開発プロジェクトで非常に役に立ちました。

于 2008-10-14T23:34:58.470 に答える
1

SergeLidinによるExpert.NET2.0ILアセンブラー

同じ本の1.1バージョンがありましたが、最新の.NETリリースでは何も見ていません。素晴らしい本です。学習プロジェクトとして、MSILでOCRコンポーネントを作成するために使用しました。

[編集]@Curtは正しいです、3.0と3.5は2.0の単なる拡張であり、私はまだそれを頭に接続していませんでした。今、私は楽しいオタクプロジェクトについて考えました...標準2.0コードの逆アセンブルを、リストのフィルタリングなどの一般的なタスクを実行する新しいLINQ/Lambdaの方法と比較してください。何らかの理由で、コンパイラだけでなく、新しいIL機能で魔法が起こっていると思いました。

于 2008-09-04T23:07:53.423 に答える