(主に) 静的言語コンパイルに DLR を使用する
-
09-06-2019 - |
質問
私は .NET をターゲットとするコンパイラを構築しており、以前は CIL を直接生成していましたが、DLR ツリーを生成すると作業がかなり楽になります。私はいくつかの動的機能、つまりランタイム関数の作成とダックタイピングをサポートしていますが、コードの大部分は完全に静的です。
さて、説明が終わりましたので、次のような質問があります。
- DLR は、MSDN ブログの小さな例を除いて、静的コンパイルに使用されたことがありますか?
- もしそうなら、どのようなパフォーマンスが達成されましたか?
- そうでない場合、これを根本的に妨げるものはありますか?
- DLR を使用するか、IL を直接発行するよりも優れたコード生成メカニズムはありますか?
これに関する洞察、またはブログ/コード/トークへの参照をいただければ幸いです。
解決
DLR をこのような方法で使用している人はまだ知りませんが、これは間違いなく DLR の意図された使用例の 1 つです。考慮すべき興味深い点の 1 つは、DLR の式ツリーが LINQ 式ツリーとマージされているため、未発表の将来の Visual Studio バージョンで LINQ 用に生成される IL では DLR コードが使用されることです。
DLR をオープン ソースとしてリリースすることの優れた点は、社外の人々が DLR を使ってどのような興味深いことをしているかわからないということです :)。
所属していません StackOverflow