Was sind die Prozesse, um eine interpretierte Programmiersprache zu analysieren?
-
20-09-2019 - |
Frage
Ich würde gerne wissen, wie der beste Weg ist, den Syntaxbaum zu erstellen.
Lösung 2
Die Standard -Stack -Überlaufressource für das Erlernen des Schreibens von Compilern und Dolmetschern ist Lernen, einen Compiler zu schreiben
Andere Tipps
Hier ist eine Erklärung zu Abstrakte Syntaxbäume (AST) aus dem LLVM -Projekt.
Teaser:
Das AST für ein Programm erfasst sein Verhalten so, dass es für spätere Phasen des Compiler (z. B. Code -Generierung) leicht zu interpretieren ist. Wir wollen im Grunde genommen ein Objekt für jedes Konstrukt in der Sprache, und das AST sollte die Sprache genau modellieren.
Wirklich nicht anders als eine andere Sprache. Der Unterschied zwischen interpretierten und kompilierten Sprachen liegt in erster Linie im Backend, nicht im Frontend. Spezifische Sprachen haben möglicherweise spezifische Anforderungen an die Parsen, Sie können jedoch keinen aussagekräftigen Vergleich bei den Parsing -Technologien zwischen den beiden Sprachenklassen machen.
Sie listen keine Sprachanforderung für Ihren Parser auf. Wenn C oder C ++ also eine Möglichkeit ist, sollten Sie sich zunächst YACC ansehen: http://en.wikipedia.org/wiki/yacc
YACC generiert einen C -Parser für Ihre spezifische Syntax. Wenn Sie mit dem beginnen, ist dies möglicherweise ein wenig zusätzliche Arbeit, aber wenn Sie das Ding und das Rollen aufgebaut haben, sollte es einfacher sein, aufrechtzuerhalten.
Haftungsausschluss: Ich habe YACC nur in einem Projekt verwendet und es war vor mehr als 10 Jahren, daher kann Ihre Milchung variieren.