Я только начинаю пытаться больше узнать об основах .Net VM, и меня тут же что-то сбрасывает.Я знаю, что есть новая вещь, называемая DLR, которая учитывает все динамические вещи в C # и работу с языками IronX.Но сейчас я читаю об этом языке, называемом Boo, и, очевидно, он имел динамические возможности задолго до появления DLR.Итак,
1) Как это вообще возможно?
2) Что DLR добавляет к уравнению?
3) Будет ли такой язык, как Бу, выиграть что-нибудьпутем повторной реализации себя в терминах DLR?
Из того, что я вроде как собирал здесь и там, похоже, что DLR появился из IronPython, когда они разобрали все, что было необходимо для поддержки DL.в .Net, и поместите его в форму для повторного использования.Так что я предполагаю, что DLR не является чем-то особенным, просто некоторые библиотеки, которые помогают с динамическими объектами в Microsoft.Scripting.dll, но ничего такого, что вы не могли бы просто выйти и написать самостоятельно, если у вас было время, котороеЯ думаю, что случилось с Бу?И затем для 2 и 3, я предполагаю, что общность и возможность повторного использования DLR позволят автоматически выполнять любые будущие улучшения DLR, но что нет срочной «необходимости» повторной реализации с использованием DLR, если вы уже сделали свойсобственное время выполнения?Или у DLR есть какой-то секретный соус MS, который делает его лучше, чем все, что мы могли бы сделать поверх .Net?
4) Действительно ли DLR - это среда выполнения или просто набор библиотек?(В любом случае, что такое время выполнения? Мне, вероятно, нужно узнать больше теории компилятора, прежде чем я смогу понять ответ на этот вопрос, или это вообще вопрос, который что-то значит. Игнорировать этот вопрос. Или нет.)
5) Как работает компиляция IronPython?Компилируется ли она в новую динамическую версию CIL или просто добавляет команду «ironpython.exe» к строке с текстом программы?Хм, хорошо, если динамическое - это ключевое слово в C #, тогда должна быть динамическая версия CIL, верно?Так как же .Net узнает, использовать ли CLR или DLR в CIL?
6) Отличается ли проект DaVinci для JVM?Похоже, что это реальная реализация самой JVM.Каковы последствия этого подхода?Я предполагаю, что есть огромный прирост производительности, но что-нибудь еще?По какой причине MS не пошла по этому пути?
7) Делает ли DLR Boo несколько устаревшим для создания DSL?