cil

    1

    1答えて

    私は学生です。一般的な目的のために、独自の.net言語を作成し、それがどのように行われているかを知り、新しいことを学ぶだけです。何が良い選択だと思いますか? CLRを対象とする静的言語を構築するか、DLRの上に動的言語を構築するには? これらの2種類の言語を作成する際の手順はどのように異なりますか? スキャナ、パーサー、CILコードを生成するためのツールは何ですか?私は人々がASTを生成するための

    2

    1答えて

    モノでSystem.Reflection.Emitでエクスポートされたアセンブリに変なバグがあります。 アセンブリを実行しようとすると、InvalidProgramExceptionが返されます。ILコードが無効です。 .method public static hidebysig default void f_main (class [Pine.Core]Pine.Core.Func

    1

    1答えて

    私はMono.Cecilで型を解析します。どのように私は型の解析はゲッターにアクセスしているかどうかを確認することができます他のクラスのメソッド? 直接フィールドにアクセスするために、私は解決策を発見した: foreach (MethodDefinition method in type.Methods) { foreach (Instruction instruct

    5

    5答えて

    CLRが参照型と多相をどのように実装しているかを理解しようとしています。私はDon BoxのEssential .Net Vol 1を参照しました。これは大部分のものを熱狂させる大きな助けとなります。しかし、私は、以下の問題で、私が立ち往生/混乱しています。 私は可能な限り問題を説明しようとします。 次のコード class Base { public void m() {

    5

    2答えて

    私はIL WeaverをMono.Cecilで作成しようとしていますが、VS2010でデバッグ可能なままにするために、PdbReaderProviderクラスまたはISymbolProviderの同様の実装が必要です。最新のMono dllをhttp://mono.ximian.com/daily/からダウンロードしましたが、zipにはMono.Cecil.Pdb.dllはありません。 https

    3

    1答えて

    コンパイラがCILに出力すると、CILが最適化されているのですか?言語がボーナスデータ情報をデバッグモードで挿入しないとすれば、JITがすべての最適化を完全に行うかどうかは疑問でした。

    2

    2答えて

    アセンブリの型が強く、ソースコードがないライブラリに問題があります。 Reflectorのおかげで、バグの原因がわかりましたが、残念ながらクラスを封印することで、サブクラス化することができなくなりました。多数の内部メソッドを参照するので、ソース全体の簡単なコピー/ペーストも失敗します。 最後の手段として、アセンブリにILを挿入できると思っていました(比較的簡単なことですが、|| something

    9

    2答えて

    インターフェイスを実装する動的クラスを生成しようとしていますが、1つ以上のメンバが既にベースに存在しています。私はC#で次のコードをコンパイルし、C#コンパイラが何を参照するかをリフレクタで調べました。 class BaseClass { public string Bob { get { return "Bob"; } } } interface

    0

    1答えて

    CILを見ると、コンパイルされたCILにコードサイズが含まれていることがわかりました。それはコメントアウトされています。 static void MakeACar() { Car myCar = new Car(); } CIL: .method public hidebysig static void MakeAObject() cil managed { //Code s

    3

    1答えて

    名前で基本クラスのメソッドにMethodReferenceを取得するにはどうすればよいですか? 私は type.BaseType.Resolve().Methods; を試みたと私はassemblyresolverに基本クラスを含むDLLを追加する場合には、メソッドを返します。 しかし、私は(baseMethodが解決TypeDefinitionからメソッドをforeachingによって発見さ