Estoy interesado en escribir un compilador muy minimalista.Programación del compilador: ¿Cuáles son los ingredientes más fundamentales?
Quiero escribir una pequeña pieza de software (en C/C++) que cumpla con los siguientes criterios:
- salida en formato ELF (* nix)
- de entrada es un solo archivo de texto
- C-como gramática y la sintaxis
- no enlazador
- no preprocesador
- muy pequeña (máx. 1-2 KLOC)
Características del lenguaje:
- tipos de datos nativos: char, int y flota
- matrices (para todos los tipos de datos nativos)
- las variables
- estructuras de control (if-else)
- funciones
- loops (sería bueno)
- simple algebra (div, agregar, sub, mul, las expresiones booleanas, desplazamiento de bit, etc.)
- línea asm (para llamadas al sistema)
¿Puede alguien decirme cómo empezar? No sé en qué partes está compuesto un compilador (al menos no en el sentido de que podría comenzar directamente) y cómo programarlos. Gracias por tus ideas.
posible duplicado de [Aprender a escribir un compilador] (http://stackoverflow.com/questions/1669/learning-to-write-a-compiler) – nawfal