Actualmente estoy inmerso en el funcionamiento interno de .net, lo que significa IL. Como ejercicio, quiero construir un compilador de brainf..k para .net (sí, ya existen, pero como he dicho es para fines de aprendizaje).¿Escribiendo un compilador para .net - IL o Bytecode?
Por el momento estoy escribiendo algunos archivos de texto que contienen .il y compilarlos con ilasm, que funciona. Pero me pregunto si podría/debería ir un nivel más profundo y escribir bytecode directamente?
Mi "preocupación" es la materia de Windows PE al compilar un EXE - en lugar de ilasm ¿Necesitaría algún tipo de enlazador Bytecode que tomaría mi bytecode MSIL/CIL y generaría las cosas PE para él?
¿O los compiladores "solo" compilan su lengua a IL y ejecutan ilasm? ¿Existe una versión administrada de la que pueda llamar/incrustar desde mi compilador?
Tenga en cuenta que realmente no necesita para generar cualquier código nativo real, si se imprime PE: tendrá que generar encabezados PE según lo definido por la especificación de la CLI, y esos incluyen algunos bits ejecutables nativos, pero están completamente predefinidos, es solo un stub que llama a _CorExeMain, por lo que puede generarlo una vez y tratarlo como opaco secuencia de bytes en su compilador. –