Question

Je veux écrire un analyseur-générateur à des fins éducatives, et je me demandais s'il y a des belles ressources en ligne ou des tutoriels expliquant comment écrire un. Quelque chose sur les lignes de « Construisons un compilateur » par Jack Crenshaw.

Je veux écrire le générateur d'analyseur pour LR (1) grammaire.

J'ai une compréhension décente de la théorie derrière la génération des actions et des tables goto, mais que vous voulez une ressource qui me aider à mettre en œuvre.

Langues préférées sont C / C ++, Java bien même d'autres langues sont OK.

Merci.

Était-ce utile?

La solution

Je suis d'accord avec les autres, le livre Dragon est bonne base pour l'analyse syntaxique LR.

Si vous êtes intéressé par parseurs descente récursive, une expérience d'apprentissage énormément plaisir est ce site qui vous guide à travers la construction d'un système de compilateur complètement autonome qui peut se compiler et d'autres langues:

MetaII compilateur Tutorial

est basé sur un étonnant petit document technique de 10 pages par Val Schorre: II META: Un compilateur du langage d'écriture Syntaxe-Oriented honnête à Dieu 1964. J'ai appris comment construire compilateurs de ce en 1970. Il y a un moment hallucinant quand vous assimilez enfin comment le compilateur peut se régénérer ....

Je sais que l'auteur du site web de mes jours de collège, mais n'a rien à voir avec le site.

Autres conseils

Si vous voulez aller la route python Je recommande ce qui suit.

J'ai trouvé ces deux extrêmement utiles et Paul McGuire l'auteur de pyparsing est super à vous aider lorsque vous rencontrez des problèmes. Le livre Traitement de texte en Python est juste une référence pratique pour avoir au bout des doigts et vous aide à entrer dans le bon état d'esprit lors d'une tentative de construire un analyseur.

Je voudrais aussi souligner qu'un langage OO est mieux adapté en tant que moteur d'analyse linguistique, car il est extensible et polymorphisme est la bonne façon de le faire (à mon humble avis). En regardant le problème en termes d'une machine d'état plutôt que « Rechercher un point-virgule à la fin de xyz » démontrera que votre analyseur devient beaucoup plus robuste à la fin.

Hope qui aide!

Pas vraiment en ligne, mais le du Dragon Book a assez élaboré discussions de l'analyse syntaxique LR.

Je l'ai trouvé plus facile d'apprendre à écrire des parseurs récursifs-descente avant d'apprendre à écrire LR parseurs. Eh bien, pour être honnête, je ne ai jamais trouvé après de nombreuses années d'écriture parseurs nécessaire d'écrire un analyseur LR.

J'ai récemment écrit un tutoriel à CodeProject appelé Outils de mise en œuvre de langage de programmation C # 4.0 qui décrit les techniques d'analyse syntaxique récursif de descente.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top