Script# Нихила Котари, возможно, является одной из самых удивительных концепций, которые я видел в области JavaScript. в течение довольно долгого времени. Этот вопрос касается не JavaScript, а компиляции языка в среде выполнения .NET.
Меня очень интересовало, как, используя платформу .NET, можно написать компилятор для языка, у которого уже есть компилятор (например, C#), который будет генерировать отдельный вывод от исходного компилятора, позволяя исходному компилятору генерировать вывод для один и тот же источник во время той же операции сборки, все время ссылаясь/используя вывод другого компилятора.
Я не совсем уверен, что понимаю процесс достаточно хорошо, чтобы задать вопрос с правильными деталями, но это то, как я сейчас вижу процесс, как показано на диаграммах в документах Script#. Я думал о многих вещах, связанных со сложным дизайном и компиляцией языка, которые могут использовать преимущества подобных концепций, и мне интересно, что другие люди думают об этих концепциях.
--
Изменить: спасибо за комментарии, пока; ваша информация сама по себе очень интригующая, и я хотел бы изучить ее подробнее, но мой вопрос на самом деле о том, как я мог бы написать свой собственный компилятор/ы, которые можно запускать на одном и том же источнике в то же время создание нескольких различных типов (потенциально) взаимозависимых выходных данных с использованием CLR. Script# служит примером, так как он генерирует JavaScript и сборку, используя один и тот же исходный код C#, в то же время заставляя скомпилированную сборку взаимодействовать с JavaScript. Мне любопытно, какие существуют различные подходы и теоретические концепции при разработке чего-то подобного.