.Net VMの基盤についてもっと学び始めたところですが、すぐに何かに見舞われてしまいます。私は、C#のすべての動的なものとIronX言語の実行を可能にするDLRと呼ばれるこの新しいものがあることを知っています。しかし今、私はBooと呼ばれるこの言語について読んでおり、DLRが存在するずっと前から動的な機能を備えていたようです。それで、
1)これはどうして可能ですか?
2)DLRは方程式に何を追加しますか?
3)Booのような言語は、DLRの観点からそれ自体を再実装することによって、何かを得るために立つでしょうか?
私があちこちで集めたものから、DLRは.NetでのDLサポートに必要なすべてを除外し、再利用可能な形式にしたときに、IronPythonから出てきたように見えます。だから私が推測しているのは、DLRは特別なものではなく、Microsoft.Scripting.dllのダイナミックオブジェクトを支援するライブラリだけですが、時間があれば自分でコードを作成することはできません。ブーはどうなったのかな?そして、2と3については、DLRの共通性と再利用性により、将来のDLRの改善を自動的に適用除外できると思いますが、すでにDLRを作成している場合は、DLRを使用して再実装する緊急の「必要性」はありません。独自のカスタムランタイム?または、DLRには、.Net上で実行できる何よりも優れた秘密のMSソースがありますか?
4)DLRは本当にランタイムですか、それとも単なるライブラリのセットですか?(とにかくランタイムとは正確には何ですか?この質問への答えを理解する前に、またはそれが何かを意味する質問であるかどうかを理解する前に、コンパイラ理論をさらに学ぶ必要があります。この質問は無視してください。またはしないでください。)
5)IronPythonコンパイルはどのように機能しますか?CILの新しい動的バージョンにコンパイルされますか、それともプログラムのテキストを含む文字列の前に「ironpython.exe」コマンドを追加するだけですか?うーん、動的がC#のキーワードである場合、CILの動的バージョンが必要ですよね?では、.NetはCILでCLRとDLRのどちらを使用するかをどのように知るのでしょうか。
6)JVMのDaVinciプロジェクトは異なりますか?これは、JVM自体の実際の再実装のようです。このアプローチの意味は何ですか?パフォーマンスが大幅に向上すると思いますが、他に何かありますか?MSがこの道を選ばなかった理由は何ですか?
7)DLRは、DSLを作成するためにBooをやや時代遅れにしますか?