Frage

Ich möchte einen Parser-Generator für Bildungszwecke schreiben und habe mich gefragt, ob es einige nette Online-Ressourcen oder Tutorials gibt, die erklären, wie man eines schreibt. Etwas nach "Lass uns einen Compiler bauen" von Jack Crenshaw.

Ich möchte den Parser -Generator für LR (1) Grammatik schreiben.

Ich habe ein anständiges Verständnis der Theorie hinter der Erzeugung der Aktion und der Goto -Tabellen, möchte aber eine Ressource, die mir bei der Implementierung hilft.

Bevorzugte Sprachen sind C/C ++, Java, obwohl auch andere Sprachen in Ordnung sind.

Vielen Dank.

War es hilfreich?

Lösung

Ich stimme anderen zu, das Dragon -Buch ist ein guter Hintergrund für die LR -Parsen.

Wenn Sie an rekursiven Abstiegsparsen interessiert sind, ist eine enorm lustige Lernerfahrung diese Website, die Sie durch den Aufbau eines völlig in sich geschlossenen Compiler-Systems führt, das sich selbst und andere Sprachen kompilieren kann:

Metaii Compiler Tutorial

Dies basiert alles auf einem erstaunlichen kleinen 10-seitigen technischen Papier von Val Schorre: Meta II: Eine syntaxorientierte Compiler-Schreibsprache Von Ehrlichkeit bis Gott 1964. Ich habe bereits 1970 gelernt, Compiler aus diesem Bereich zu bauen. Es gibt einen atemberaubenden Moment, in dem Sie endlich gruken, wie der Compiler sich regenerieren kann ....

Ich kenne den Website -Autor aus meinen College -Tagen, habe aber nichts mit der Website zu tun.

Andere Tipps

Wenn Sie die Python -Route gehen wollten, würde ich Folgendes empfehlen.

Ich habe festgestellt, dass beide äußerst hilfsbereit sind, und Paul McGuire, der Autor von Pyparsing, hilft Ihnen, wenn Sie auf Probleme stoßen. Die Buchtextverarbeitung in Python ist nur ein praktischer Verweis, um an Ihren Fingerspitzen zu haben, und hilft Ihnen, beim Versuch, einen Parser zu bauen, in die richtige Verstandsempfindlichkeit.

Ich würde auch darauf hinweisen, dass eine OO -Sprache besser als Sprachanalyse -Engine geeignet ist, da sie erweiterbar ist und Polymorphismus der richtige Weg ist, dies zu tun (IMHO). Wenn Sie sich das Problem in Bezug auf eine Zustandsmaschine befassen, anstatt "nach einem Semikolon am Ende von XYZ zu suchen", wird am Ende gezeigt, dass Ihr Parser viel robuster wird.

Ich hoffe, das hilft!

Nicht wirklich online, aber die Drachenbuch hat ziemlich ausgefeilte Diskussionen über die LR -Parsen.

Ich fand es einfacher, zu lernen, rekursive Parser zu schreiben, bevor ich lernte, LR-Parsers zu schreiben. Um ehrlich zu sein, fand ich nach vielen Jahren des Schreibens von Parsers es nie notwendig, einen LR -Parser zu schreiben.

Ich habe kürzlich ein Tutorial bei CodeProject Calling geschrieben Implementierung von Tools für Programmiersprache in C# 4.0 Das beschreibt rekursive Abstammungstechniken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top