Ich habe mehrere handgeschriebene Compiler für sehr einfache Sprachen erstellt, aber jetzt möchte ich versuchen, eine dynamische Sprache zu entwickeln, ähnlich einer vereinfachten Python oder Ruby. Es fiel mir jedoch leicht, mich mit der Funktionsweise von Compilern zu beschäftigen. Primitive Compiler übersetzen einfach. Aber ich kann das nicht tun, wenn die Sprache dynamisch ist. Ich muss einen Interpreter oder eine VM schreiben, die die Informationen zur Laufzeit verfolgt und viel mehr Arbeit auf mich ausübt.
Kurz gesagt, gibt es Ressourcen, die ich überprüfen sollte, wenn ich weiß, wie Compiler funktionieren, aber auf die Erstellung eines Interpreters migrieren möchte? Es gibt einige VMs für dynamische Sprachen, aber ich habe kein Problem damit, meine eigenen zu rollen. Dies ist alles nur für meine persönliche Erfahrung.
Ich suche Informationen darüber, wie ich von einem Compiler zu einem Interpreter wechseln kann. Wenn ich bereits einen Compiler für Sprache X erstellt habe, aber jetzt einen Interpreter schreiben soll, was muss getan werden und gibt es Ressourcen, die den Prozess durchlaufen?
Ich möchte keine umfassenden oder abstrakten Ressourcen, die sich mit der Funktionsweise von Compilern oder virtuellen Maschinen befassen. Ich habe viele Lehrbücher zu diesem Thema. Alle Ressourcen, die ich online gefunden habe, setzen entweder voraus, dass Sie keine Erfahrung haben, und beginnen Sie daher mit einer lexikalischen oder syntaktischen Analyse, oder sie sind äußerst abstrakt. Ich habe einen funktionierenden Compiler, möchte ihn aber jetzt in einen Interpreter verwandeln und der Sprache dynamische Funktionen hinzufügen.
Ich konnte keine Ressourcen für diesen Prozess finden, der Umfang ist möglicherweise zu begrenzt, oder Ressourcen für das "Back-End" eines Dolmetschers, ohne zu theoretisch zu sein, weshalb ich hier gepostet habe.