Definition - Was bedeutet Parser?
Ein Parser ist eine Compiler- oder Interpreter-Komponente, die Daten für eine einfache Übersetzung in eine andere Sprache in kleinere Elemente aufteilt. Ein Parser nimmt Eingaben in Form einer Folge von Token, interaktiven Befehlen oder Programmanweisungen entgegen und zerlegt sie in Teile, die von anderen Komponenten bei der Programmierung verwendet werden können.
Ein Parser überprüft normalerweise alle bereitgestellten Daten, um sicherzustellen, dass es ausreicht, eine Datenstruktur in Form eines Analysebaums oder eines abstrakten Syntaxbaums zu erstellen.
Technische.me erklärt Parser
Damit der in menschlich lesbarer Form geschriebene Code von einer Maschine verstanden werden kann, muss er in Maschinensprache konvertiert werden. Diese Aufgabe wird normalerweise von einem Übersetzer (Interpreter oder Compiler) ausgeführt. Der Parser wird üblicherweise als Bestandteil des Übersetzers verwendet, der linearen Text in einer Struktur organisiert, die leicht manipuliert werden kann (Analysebaum). Dazu folgt eine Reihe definierter Regeln, die als „Grammatik“ bezeichnet werden.
Der gesamte Parsing-Prozess umfasst drei Phasen:
-
Lexikalische Analyse: Ein lexikalischer Analysator wird verwendet, um Token aus einem Strom von Eingabezeichenfolgen zu erzeugen, die in kleine Komponenten aufgeteilt werden, um aussagekräftige Ausdrücke zu bilden. Ein Token ist die kleinste Einheit in einer Programmiersprache, die eine Bedeutung besitzt (z. B. +, -, *, "Funktion" oder "neu" in JavaScript).
-
Syntaktische Analyse: Überprüft, ob die generierten Token einen aussagekräftigen Ausdruck bilden. Dies verwendet eine kontextfreie Grammatik, die algorithmische Prozeduren für Komponenten definiert. Diese bilden einen Ausdruck und definieren die bestimmte Reihenfolge, in der Token platziert werden müssen.
-
Semantisches Parsen: Die letzte Analysephase, in der die Bedeutung und die Auswirkungen des validierten Ausdrucks bestimmt und die erforderlichen Maßnahmen ergriffen werden.
Der Hauptzweck eines Parsers besteht darin, zu bestimmen, ob Eingabedaten vom Startsymbol der Grammatik abgeleitet werden können. Wenn ja, auf welche Weise können diese Eingabedaten abgeleitet werden? Dies wird wie folgt erreicht:
-
Top-Down-Analyse: Umfasst das Durchsuchen eines Analysebaums, um die Ableitungen eines Eingabestreams ganz links mithilfe einer Top-Down-Erweiterung zu finden. Das Parsen beginnt mit dem Startsymbol, das in das Eingabesymbol umgewandelt wird, bis alle Symbole übersetzt und ein Analysebaum für eine Eingabezeichenfolge erstellt wurde. Beispiele hierfür sind LL-Parser und Parser mit rekursivem Abstieg. Top-Down-Parsing wird auch als Predictive Parsing oder rekursives Parsing bezeichnet.
-
Bottom-Up-Analyse: Umfasst das Umschreiben der Eingabe in das Startsymbol. Es funktioniert umgekehrt, indem die Ableitung eines Strings ganz rechts verfolgt wird, bis der Analysebaum bis zum Startsymbol erstellt ist. Diese Art der Analyse wird auch als Shift-Reduce-Analyse bezeichnet. Ein Beispiel ist ein LR-Parser.
Parser werden häufig in den folgenden Technologien verwendet:
-
Java und andere Programmiersprachen.
-
HTML und XML.
-
Interaktive Datensprache und Objektdefinitionssprache.
-
Datenbanksprachen wie SQL.
-
Modellierungssprachen wie die Virtual-Reality-Modellierungssprache.
-
Skriptsprachen.
-
Protokolle wie HTTP- und Internet-Remote-Funktionsaufrufe.