Взятый из связанной статьи:
Хейлсберга продемонстрировал C# программы, которая прошла несколько фрагментов кода компилятор С # как строки; компилятор вернул полученный в результате код сборки IL в качестве объекта, который затем был передан в стандартный срок выполнения CLR для . Вуаля! С Roslyn C# получает динамический язык , способный генерировать и вызывать код во время выполнения.
Часть:
[...] C# получает способность динамического языка для генерации и вызова кода во время выполнения.
... это просто очень неправильно предположение, сделанное в блоге пост автора ...
Компиляция кода из приложения не включается C# в динамический язык или Безразлично «т включить новые C# компилятор в качестве замены переводчика ...
C# было в состоянии генерировать код во время выполнения с момента ее создания с использованием отражения Выделяет. Кажется, что новый компилятор не добавил эту функцию, но в любом случае проще сгенерировать код из обычного кода C# с новым компилятором, чем с помощью Reflection Emit. Кроме того, как отметил в своем комментарии @hvd, это также было возможно с момента создания C# с использованием CSharpCodeProvider
.
C#, так как .NET 4.0, могут взаимодействовать с динамическими языками, используя Dynamic Language Runtime, который был создан, чтобы открыть дверь, чтобы интерпретировать реализации языка поверх .NET (а также сделать COM Interop проще. ..).
О другом вопросе (вещи о деконструкции компилятора), это означает, что новый C# компилятор позволяет подключить другой код для выполнения действий, основанных на C# компиляции шагов.
Я бы посмотрел на Roslyn Overview on GitHub, где есть много деталей, которые должны дать больше информации о теме.
«Размонтированный» компилятор - это тот, чьи элементы доступны. Возможно, это позволяет разработчикам не компилятора выполнять некоторые компиляторные задачи. Более общей альтернативой является система преобразования программ https://en.wikipedia.org/wiki/Program_transformation, которая делает компиляторные устройства доступными для самых разных языков, а не только для одного. Посмотрите мою биографию, чтобы узнать подробности об одном из них. –