В настоящее время я погружаюсь во внутренние работы .net, что означает IL. В качестве упражнения я хочу построить компилятор brainf..k для .net(да, они уже существуют, но, как сказано в целях обучения).
На данный момент я просто пишу текстовые файлы, содержащие .il, и компилирую их с помощью ilasm, который работает. Но мне интересно, могу ли я/мог идти на один уровень глубже и писать байткод напрямую?
Мое "беспокойство" - это материал Windows PE при компиляции EXE - вместо ilasm мне нужен какой-то компоновщик Bytecode, который возьмет мой байт-код MSIL/CIL и сгенерирует PE-материал для него?
Или компиляторы "только" компилируют свой язык в IL и выполняют ilasm? Есть ли управляемая версия, которую я могу вызвать/внедрить из моего компилятора?