Creo que este es un gran ejercicio de aprendizaje. Como tal, no se preocupe demasiado por las optimizaciones del compilador, aunque esto también es un ejercicio de aprendizaje continuo.
Antes de iniciar su propio idioma, busque un compilador simple de código abierto y vea cómo funciona. Me formé hace mucho tiempo en herramientas de lex y yacc para crear compiladores. lex divide la entrada en tokens y yacc interpretará la estructura del programa. Como primer paso, vea Escribir un intérprete con Lex, Yacc y Memphis.
Si desea aprovechar el trabajo existente en los entornos de tiempo de ejecución Just In Time, podría considerar compilar su código en el código de bytes de Java. Esto hará que tu lenguaje sea portátil. Otra posibilidad es generar su lenguaje en ensamblador y llamar al ensamblador durante la compilación.
Si su idioma es lo suficientemente simple, es posible que desee escribir un intérprete completo que lea e interprete su idioma en tiempo real. Esto es como llamar a “eval ()” en Lisp. Lo he hecho para mi propia programación genética y me gusta el control completo y la velocidad que he logrado. Otro beneficio de este enfoque es que puede permitir que su programa se modifique a sí mismo en tiempo de ejecución. Bonito.
- ¿Se acabó la programación?
- Cómo aprender ruso correctamente
- ¿Cómo se puede aprender fotografía sin unirte a un curso?
- ¿Cuál es la forma más fácil de aprender a conducir un automóvil en Texas?
- Estoy interesado en construir aplicaciones iPhone / Android. ¿Cuáles son algunas recomendaciones sobre buenos lugares para comenzar a aprender?
Disfruta tu viaje!