8

私は .NET をターゲットとするコンパイラを構築しており、以前に CIL を直接生成したことがありますが、DLR ツリーを生成することで、作業がかなり楽になります。私はいくつかの動的機能、つまりランタイム関数の作成とダックタイピングをサポートしていますが、コードの大部分は完全に静的です。

以上の説明がありましたので、以下の質問をさせていただきます。

  • MSDN ブログの小さな例以外で、DLR は静的コンパイルに使用されていますか?
  • もしそうなら、どのようなパフォーマンスが達成されましたか?
  • そうでない場合、これを根本的に妨げているものはありますか?
  • DLR を使用するか、IL を直接発行するよりも優れたコード生成メカニズムはありますか?

これについての洞察、またはブログ/コード/トークへの参照は大歓迎です。

4

1 に答える 1

7

このような方法で DLR を使用している人をまだ知りませんが、これは間違いなく意図された使用例の 1 つです。考慮すべき興味深い点の 1 つは、DLR の式ツリーが LINQ 式ツリーとマージされていることです。そのため、まだ発表されていない Visual Studio の将来のバージョンで LINQ 用に生成される IL は、DLR コードを使用することになります。

DLR をオープン ソースとしてリリースすることの素晴らしい点は、社外の人々が DLR を使ってどんな興味深いことをしているのか、私たちにはわからないということです :)。

于 2008-09-13T13:30:49.893 に答える