コンパイラは、記録するために、.NETのコアの障害と将来の思考.NETに移植しました

 

.NETのコアは、Microsoftの新しいプラットフォームを推進している、より多くの影響力を持っているようです。最近出てから、独自のプログラミング言語コンパイラの、この業界のトレンドのために準備されるためには、.NETの移植.NETのコアのクロスプラットフォーム達成するために、Linuxの上で実行することではなく、失敗しました。

 

 

 

その理由は、ということである.NETのコアでライブラリのAppDomainAssemblyBuilderModuleBuilderILGeneratorので、それが不可能にコンパイルすること、メソッドまたはタイプのいくつかの非常にコアが含まれていません。

 

これらのコアは正常にコンパイルすることはできませんがなければ、最終バイナリファイルを生成することはできません。あるように使用されるもの.NET CLR上で実行されているオープンソース言語の.NETのコア彼らのためには何の魅力、フォローアップの欠如がありません.NETのコア上に、そのオープンソースプロジェクトからの助けを得るための方法はありません。例えば、ClojureのCLRは、私はその最新のコンパイラのソースコードをダウンロードし、それがであるSystem.Reflection.Emitを生成するために、名前空間ILの命令を。

 

 

マイクロソフトに.NETのコアは、上放棄さSystem.Reflection.Emit物事のそのセットを。私は、生成された一連の研究しようとしたILの無効とする知識を。これは、のことを思い出すSliverlightXNAWindowsの携帯電話の運命。私は知識のこの部分を掘り下げするために懸命に働いてきたゼロ、ゼロカードのことを思い出すサーカシヴィリのニックネーム

 

私は今、Microsoftは今だと思うRoslynのコンパイルC#のが、Roslynのは、オープンソースです。私は、ダウンロードしたロザリンソースを、と分析しました。出会うソースコードPEAssemblyBuilderいくつかの.NETのコア欠けている方法が、それはその内部の密閉された使用に誰にでも利用可能で、開いていない、クラスではありません。

マイクロソフトだけでなく、.NETのコアは、以前に破壊さSystem.Reflection.Emit、新しい代替機能を提供していない、それが他の人を除外しているようです、単独でのビルドに.NETのエコロジー、.NETを超えたJavaはまたの可能性ありおおまかに決定。あまりにも少し感じます。

 

私は外国人が中にあきらめなければならないことを感じた.NET賢明であるの開発言語。Javaプラットフォームは、が行われているのGroovyScalaのKotlinをというように言語がに表示されます.NETの持っていることは不可能。マイクロソフト.NETではないように、すぐに破棄破棄したい、支配に固有のJavaのJCPの投票に適合している組織、依頼する必要はありません.NETのプログラマービュー、高効率を。

 

 

次のようにメソッドまたは不足しているタイプは次のとおりです。

AppDomainの

この方法の欠如

DefineDynamicAssembly(のAssemblyName名、AssemblyBuilderAccessアクセス)。

 

AssemblyBuilder

この方法の欠如

DefineDynamicModule(文字列名、文字列ファイル名、BOOL emitSymbolInfo)。

SetEntryPoint(METHODINFO entryMethod、PEFileKinds fileKind)。

保存(文字列assemblyFileName)。

 

ModuleBuilder

この方法の欠如

DefineDocument(文字列のURL、のGuid言語、のGuid languageVendor、のGUIDのDocumentType)。

 

ILGenerator

この方法の欠如

MarkSequencePoint(ISymbolDocumentWriter文書、INT STARTLINE、INT STARTCOLUMN、INT終了行、INT ENDCOLUMN)。

 

LocalBuilder

この方法の欠如

SetLocalSymInfo(文字列名)。

 

列挙型の欠如PEFileKinds

 

AssemblyBuilderAccess

列挙値の欠如

保存する、

RunAndSave、

ReflectionOnly

 

 

おすすめ

転載: www.cnblogs.com/tkt2016/p/12625988.html