Inhaltsverzeichnis:
Definition - Was bedeutet Parser?
Ein Parser ist eine Compiler- oder Interpreter-Komponente, die Daten zur einfachen Übersetzung in eine andere Sprache in kleinere Elemente aufteilt. Ein Parser nimmt Eingaben in Form einer Folge von Token oder Programmanweisungen entgegen und erstellt normalerweise eine Datenstruktur in Form eines Analysebaums oder eines abstrakten Syntaxbaums.
Techopedia erklärt Parser
Ein Parser wird üblicherweise als Komponente eines Interpreters oder Compilers verwendet. Der Gesamtprozess des Parsens umfasst drei Stufen:
- Lexikalische Analyse: Ein lexikalischer Analysator wird verwendet, um Token aus einem Strom von Eingabezeichenfolgen zu erstellen, die in kleine Komponenten aufgeteilt werden, um aussagekräftige Ausdrücke zu bilden.
- Syntaktische Analyse: Überprüft, ob die generierten Token einen aussagekräftigen Ausdruck bilden. Hierbei wird eine kontextfreie Grammatik verwendet, die algorithmische Prozeduren für Komponenten definiert. Diese arbeiten, um einen Ausdruck zu bilden und die bestimmte Reihenfolge zu definieren, in der Token platziert werden müssen.
- Semantische Analyse: 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 aus dem 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. Beispiele hierfür sind LL-Parser und Parser mit rekursiver Herkunft.
- Bottom-Up-Parsing: Umfasst das Zurückschreiben der Eingabe zum Startsymbol. Diese Art des Parsings wird auch als Shift-Reduce-Parsing 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, z. B. Modellierungssprache für virtuelle Realität
- Skriptsprachen
- Protokolle wie HTTP- und Internet-Remote-Funktionsaufrufe