HowTo / Tutorial für das Schreiben eines Parsers?
-
Hallo..
Suche ein HowTo / Tutorial, in dem es um das Schreiben eines Parsers geht.
Habe da noch teils Probleme, da mir so etwas nie vernünftig erklärt wurde.
Habe schon gegoogelt, jedoch nix brauchbares gefunden. Daher versuche ich es mal hier..
Kennt einer von euch ein gutes Tutorial, das dieses Thema behandelt?MfG
Hundefutter
-
Vielleicht wäre Boost.Spririt oder als Vorstufe Boost.Regex etwas für dich.
Zu Boost.Spirit gäbe es hier einen einführenden Artikel.
-
Das ist doch schon mal ein Anfang. Habe mir schon Teile von Boost angeguckt, die jedoch noch nicht. Danke für den Tip.
Gibt es noch weitere HowTo's, vielleicht auch generell zum Thema Parsen?MfG
Hundefutter
-
Guck dir doch die üblichen Notationen für Grammatiken an (BNF, EBNF). Wenn du die verstanden hast solltest du auch wissen wie man einen Parser schreibt.
Die einfachsten Parser sind wohl "Recursive Descent Parser":
http://en.wikipedia.org/wiki/Recursive_descent_parserAllerdings sind die auch oft ziemlich langsam (kommt natürlich auch auf die Grammatik drauf an). Schnellere Parser lässt man sich IMO am Besten durch einen Parser-Generator generieren. Eine kleine Übersicht gibt's hier:
http://en.wikipedia.org/wiki/Comparison_of_parser_generators
Was gedenkst du denn zu parsen?
-
Ich empfehle da immer Flex und Bison, sie haben auch sehr gute Tutorials. Du solltest aber schon etwas Theorie zu Grammatiken etc mitbringen.
-
Danke für die Hinweise.
Mit Grammatiken kenne ich mich schon etwas aus, das sollte eigentlich kein Problem sein. Werde mir die angegebenen Sachen mal angucken, danke!
MfG
Hundefutter
-
Ich hab vor kurzem einen schönen Blog gefunden. Der Autor hat da eine Serie von
kleinen Artikeln veröffentlicht, in denen er einen einfachen Parser von Hand schreibt.
Also mir hats geholfen, hier ist der Link: http://tommycarlier.blogspot.com/2007/05/writing-parser-overview.html
-
Das sieht sehr vielversprechend aus, danke!
Weitere Links können gerne weiterhin gepostet werden.
MfG
Hundefutter
-
Wenn dich das Thema wirklich interessiert (und du ein bisschen Geld locker hast) kann ich das Buch "Compilers - principles, tools and techniques" empfehlen. Das original ist sehr alt (aber nicht minder gut), und gibt ne deutsche ausgabe der zweiten Auflage, aktualisiert udn erweitert, von 2008. Darin findest du auf jeden Fall einiges über Parser etc., das Buch geht aber auch noch weiter darüber hinaus, also wenns dir nur um Parser geht schießt es etwas übers Ziel hinaus.