He creado mi propio lenguaje de código de bytes (muy simple) y una máquina virtual para ejecutarlo. Funciona bien, pero ahora me gustaría usar gcc (o cualquier otro compilador disponible libremente) para generar código de bytes para esta máquina desde un programa c normal. Entonces, la pregunta es, ¿cómo modifico o extiendo gcc para que pueda generar mi propio código de bytes? Tenga en cuenta que NO quiero compilar mi código de bytes en código de máquina, quiero "compilar" c-code con (mi propio) código de bytes.¿Cómo escribir tu propio generador de código backend para gcc?
Me doy cuenta de que esta es una pregunta potencialmente grande, y es posible que la mejor respuesta sea "ve a ver el código fuente de gcc". Solo necesito ayuda con cómo comenzar con esto. Me imagino que debe haber algunos artículos o libros sobre este tema que podrían describir el proceso para agregar un generador personalizado a gcc, pero no he encontrado nada al buscar en Google.
Ve a LLVM. GCC es conocido por ser difícil de extender. – Mat
esta guía podría ayudarlo: http://www.drdobbs.com/retargeting-the-gnu-c-compiler/184401529 "Una mirada interna sobre cómo implementar el compilador GNU C a su plataforma de elección." - una bonita buena lectura, aunque todavía no intenté seguirlo. –