J'ai créé plusieurs compilateurs écrits à la main pour des langages très simples mais maintenant je veux m'essayer au développement d'un langage dynamique, similaire à un Python ou Ruby simplifié. Cependant, il m'a été facile de comprendre comment fonctionnent les compilateurs. Les compilateurs primitifs ne font que traduire. Mais je ne peux pas faire ça si la langue est dynamique. Je dois écrire un interprète ou une machine virtuelle qui garde la trace des informations au moment de l'exécution et me met beaucoup plus de travail.
En bref, y a-t-il des ressources que je devrais vérifier étant donné que je sais comment fonctionnent les compilateurs mais que je souhaite migrer vers la création d'un interprète? Il existe quelques machines virtuelles pour les langages dynamiques, mais je n'ai aucun problème avec le mien. C'est juste pour mon expérience personnelle.
Je cherche des informations sur la façon de passer d'un compilateur à un interprète. Si j'ai déjà fait un compilateur pour la langue X mais maintenant quoi écrire un interprète, que faut-il faire et y a-t-il des ressources qui vont au cours du processus?
Je ne veux pas de ressources étendues ou abstraites sur le fonctionnement des compilateurs ou des machines virtuelles. J'ai plein de manuels sur le sujet. Toutes les ressources que j'ai trouvées en ligne supposent que vous avez 0 expérience et vous commencent donc par une analyse lexicale ou syntaxique ou elles sont extrêmement abstraites. J'ai un compilateur qui fonctionne, mais je veux maintenant le transformer en interprète et ajouter des fonctionnalités dynamiques au langage.
Je n'ai pas pu trouver de ressources sur ce processus, il peut être de portée trop limitée, ou de ressources sur le "back end" d'un interprète sans être trop théorique c'est pourquoi j'ai posté ici.