Was ist ein PARSER?

Post Reply
Message
Author
max18

Was ist ein PARSER?

#1 Post by max18 »

hallo,
versuche grade ein bisschen c/c++ zu erschnuppern. und hier stoße ich bei kleineren programmbeispielen öfter mal auf den begriff parser (bsp. bei einem calculator). leider scheint jeder zu wissen was ein parser ist weil niemand hält es für nötig wirkliich zu erklären was das ist, was er macht und wie man einen solchen machen kann...

falls jemanden diese frage nicht zu doof ist, vielen dank für die antwort!

Jochen

Re: Was ist ein PARSER?

#2 Post by Jochen »

Ein recht trockener Link: <a href="http://whatis.techtarget.com/definition ... 49,00.html" target="_blank"><!--auto-->http://whatis.techtarget.com/definition ... <!--auto-->

Ein Parser ist ein Programm/Programmteil, welches eine Eingabe wie z.B. Rechenanweisungen für einen Taschenrechner oder auch ein C-Programm auf syntaktische Korrektheit prüft und weitere Aktionen aus den erkannten Syntaxelementen auslöst, also beispielsweise Rechenoperationen, Codegenerierung usw. Wenn Dich so etwas interessiert, dann schau Dir mal bison an; "man bison" oder besser "info bison" gibt Dir da jede Menge Informationen. bison ist übrigens wie üblich ein Wortspiel. Sein Vorgänger, nach dessen Modell bison nachgebaut und verbessert wurde, hiess nun mal "yacc" (yet another compiler compiler)...

Im Zusammenhang mit einem Parser trifft man auch häufig auf den Begriff des Lexers bzw. des Lexical Analyzers. Der Parser arbeitet selbst nicht mit einzelnen Zeichen, sondern mit sogenannten Tokens. Dies sind bereits als solche erkannte Zahlen oder Schlüsselworte einer Sprache. Die Zerlegung eines Eingabestroms in solche Tokens, die ein Parser dann verarbeiten kann, übernimmt eben der Lexer. Die GNU-Variante davon heisst "flex" (da er flexibler ist als sein Vorgänger, lex... Aua aua <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">). Auch hier ist manb mit "info flex" (oder "man flex" für's schnelle Nachschlagen) gut bedient.

Jochen

max18

Re: Was ist ein PARSER?

#3 Post by max18 »

danke, jochen! und auch vielen dank für den hinweis zu yacc/bison hatte die beiden begriffe schon öfter gehört aber nie wirklich verstanden bzw. richtig zuordnen können!

Post Reply