He creado varios compiladores escritos a mano para lenguajes muy simples, pero ahora quiero intentar desarrollar un lenguaje dinámico, similar a un Python o Ruby simplificado. Sin embargo, fue fácil para mí entender cómo funcionan los compiladores. Los compiladores primitivos solo traducen. Pero no puedo hacer esto si el lenguaje es dinámico. Tengo que escribir un intérprete o VM que haga un seguimiento de la información en tiempo de ejecución y me ponga mucho más trabajo.
En resumen, ¿hay algún recurso que deba consultar considerando que sé cómo funcionan los compiladores pero quiero migrar para crear un intérprete? Hay algunas máquinas virtuales para los lenguajes dinámicos, pero no tengo ningún problema con el mío. Todo esto es solo para mi experiencia personal.
Estoy buscando información sobre cómo pasar de un compilador a un intérprete. Si ya he hecho un compilador para el lenguaje X pero ahora qué escribir un intérprete, ¿qué hay que hacer? ¿Hay algún recurso que vaya sobre el proceso?
No quiero recursos amplios o abstractos que analicen cómo funcionan los compiladores o las máquinas virtuales. Tengo muchos libros de texto sobre el tema. Todos los recursos que encontré en línea suponen que tiene 0 experiencia y, por lo tanto, comienzan con un análisis léxico o sintáctico o son extremadamente abstractos. Tengo un compilador que funciona, pero ahora quiero convertir esto en un intérprete y agregar funciones dinámicas al lenguaje.
No pude encontrar recursos en este proceso, puede tener un alcance demasiado limitado o recursos en el "back end" de un intérprete sin ser demasiado teórico, por eso publiqué aquí.