Qu'est-ce que les processus d'analyse d'un langage de programmation interprété?
-
20-09-2019 - |
Question
Je voudrais savoir comment est la meilleure façon de créer l'arbre de syntaxe.
La solution 2
La norme Stack ressource débordement pour apprendre à écrire des compilateurs et interprètes est d'écrire un compilateur
Autres conseils
Voici quelques explications sur Abstrait arbres syntaxiques (AST) du projet LLVM .
Teaser:
L'AST pour un programme capture son comportement de telle sorte qu'il est facile pour les étapes ultérieures du compilateur (par exemple de génération de code) à interpréter. Nous voulons essentiellement un objet pour chaque construction dans la langue, et l'AST doit modéliser étroitement la langue.
Non différent de toute autre langue, vraiment. La différence entre les langues interprétés et compilés est principalement dans le back-end, pas le frontend. langues spécifiques peuvent avoir des exigences d'analyse spécifiques, mais vous ne pouvez pas faire une comparaison significative dans les technologies de l'analyse entre les deux classes de langues.
Vous omettez une exigence linguistique pour votre analyseur, donc si C ou C ++ est une possibilité, vous devriez commencer par regarder yacc: http://en.wikipedia.org/wiki/Yacc
Yacc génère un analyseur C pour votre syntaxe spécifique. Pour commencer avec cela pourrait être un peu plus de travail, mais une fois que vous obtenez la chose et de roulement, il devrait être plus facile à entretenir.
Disclaimer:. Je ne l'ai utilisé yacc dans un projet et il était il y a 10 ans et plus, de sorte que votre milage peut varier