Begriff

Analysieren

Inhaltsverzeichnis



Was ist Parse?

In der Informatik zu analysieren ist ein Akt von Parsing a Schnur oder irgendeinen anderen Text. Das Parsen erfolgt über a Parser . Ein Parser beschreibt ein Computerprogramm zum Übersetzen einer Eingabe in ein geeignetes Format zur weiteren Verarbeitung. Es zerlegt die Informationen zunächst und gibt sie dann in einem geordneten System aus. Beim Übersetzen von Programmiersprachen ist der Parser ein wichtiger Bestandteil der Compiler , ein Programm, das Quelltexte für Maschinen lesbar macht. Der Compiler ist immer noch in der Lage, Fehler im Code zu erkennen und zu korrigieren, was mit einem einfachen Parser nicht möglich ist. Daher wird der Compiler meistens dazu verwendet, die Syntax im Quellcode zu überprüfen.

Der Parser analysiert einen gegebenen Text oder Quellcode mit Hilfe von a Lexer . Der lexikalische Scanner fragt nicht nur alle Daten ab, sondern zerlegt sie auch in Tokens. Token sind Zeichen, die der Parser versteht. Dies sind Zeichenfolgen oder Eingabesymbole, denen von der ein Typ zugewiesen wird formale Grammatik . Beispielsweise wird die Zeichenfolge 123 vom Parser als Zeichentypnummer erkannt.



Als nächstes folgt die eigentliche Kernaufgabe des Parsers, bei der er die Syntax der Eingabe überprüft und aus den gewonnenen Daten eine Struktur erstellt und als Parse-Baum darstellt. Diese Struktur ist die Grundlage für die weitere Verarbeitung der Daten.

Verschiedene Arten von Parsern

Es gibt zwei verschiedene Arten von Parsern, Top-Down-Parser und Bottom-Up-Parser. Der Hauptunterschied zwischen den beiden besteht darin, dass sie unterschiedliche Start- und Endpunkte für die Struktur des Syntaxbaums haben.

Top-down-Parser: Top-down-Parser (z. B. LL- und LF-Parser) arbeiten, indem sie vom Startsymbol auf die einzelnen Tokens ableiten: Die Analyse läuft vom gesamten Quelltext über die darin enthaltenen Funktionen und Ausdrücke bis hin zu den darin enthaltenen Tokens.

Bottom-up-Parser: Beim Bottom-up-Parser (z. B. verschiedene LR-Parser) beginnt die Verarbeitung mit einem Token, also einem Blatt des Baums. Durch das Reduzieren einzelner Token arbeitet sich der Parser an größeren Kontexten wie Ausdrücken und Funktionen vor, bis er das Startsymbol erreicht. Beim Bottom-up-Parser signalisiert das Startsymbol, dass die Eingabe vollständig analysiert wurde.

Parser-Generator

Mit einem Parser-Generator ist es möglich, automatisch einen effizienten Parser für ein gegebenes lexikalisches System zu erstellen. Es gibt auch Scanner-Generatoren, die aus einer formalen Beschreibung einen lexikalischen Scanner generieren. Diese Werkzeuge werden im Compilerbau verwendet – vollwertige Compilergeneratoren gelten noch als experimentell.

Parser benötigen korrekt strukturierte Eingaben

Ein Parser ist normalerweise darauf angewiesen, dass die Eingaben einer bestimmten Syntax entsprechen. Beispielsweise müssen Anweisungen einem standardisierten Format folgen, um von einem Parser korrekt erkannt zu werden.

XML beispielsweise ist eine weit verbreitete Auszeichnungssprache, mit der Informationen hierarchisch strukturiert werden können. Das Format kann direkt von Menschen und von Maschinen mit einem XML-Parser gelesen werden. Allerdings funktioniert der XML-Parser nur, wenn die Struktur fehlerfrei ist.

Wenn zuerst ein unerwartetes Zeichen auftauchte, konnte die syntaktische Analyse des gesamten Dokuments fehlschlagen. Die meisten Parser melden, wenn sie auf eine falsche Syntax stoßen. Dies hilft nicht nur bei der Fehlersuche, sondern hilft auch, viele Fehler während der Entwicklung zu vermeiden.