Parser ist der Name für ein Programm. In der Regel enthält jeder Compiler einen Parser, denn letzterer übernimmt eine Teilaufgabe des Compilers. Der Compiler ist dafür verantwortlich, den Code einer Software so zu übersetzen, dass er durch die Maschine ausgelesen werden kann. Der Parser übernimmt hierbei den wichtigen Teil der Aufsplittung und Umwandlung eines Codes. Das heißt, er teilt den Code – der letztendlich nichts anderes als eine Kette von mehreren Befehlen darstellt, in seine einzelnen Bestandteile auf und analysiert diese daraufhin.
Wie funktioniert’s?
Die Funktion eines Parsers wird wiederum durch mehrere einzelne Bestandteile ermöglicht. An erster Stelle steht dabei in der Regel ein ein Lexer. Dabei handelt es sich um einen Scanner, der den gesamten Code scannt und ihn daraufhin in seine einzelnen Bestandteile/Befehle aufteilt. Ist der Vorgang abgeschlossen, liegen mehrere Token vor, die dann vom Parser weiterverarbeitet werden können. Der Parser nimmt also diese Daten auf und erstellt daraus den sogenannten Parse-Baum bzw. Syntax-Baum, in dem er die vorhandenen Daten einer snytaktischen Analyse unterzieht. Letztendlich nimmt der Parser also die Befehle aus dem Quelltext, überprüft sie und verarbeitet sie, um sie anschließend weiterleiten zu können. Dabei kann allerdings zwischen unterschiedlichen Typen von Parsern unterschieden werden, die sich hingehend ihrer Vorgehensweise bei der Verarbeitung des vorliegenden Codes unterscheiden.
Top-Down-Parsing und Bottom-Up-Parsing
Die unterschiedlichen Typen des Parsing-Vorgangs nennen sich Top-Down-Parsing und Bottom-Up-Parsing. Die Vorgehensweise bei der Erstellung des Syntax-Baumes steckt bereits im Namen. Beim Top-Down-Parsing beginnt der Parser beim Startsymbol des vorliegenden Codes. Von dort aus leitet er die richtigen Informationen nach und nach aus der Syntax ab und erstellt daraus den Syntax-Baum von oben nach unten. Bei der Bottom-Up-Methode geht der Parser in entgegengesetzter Richtung vor. Er beginnt beim einzelnen Token und erstellt daraus die größer werdenden Zusammenhänge. Irgendwann kommt er beim Startsymbol an und der Vorgang ist abgeschlossen. Es gibt noch weitere Klassifizierungen von Parsern. Die Unterscheidung zwischen Top-Down-Parsing und Bottom-Up-Parsing gehört allerdings zu den typischen Unterscheidungsmerkmalen.
Parser in der Praxis
Damit ein HTML-Code vom Browser interpretiert und somit korrekt angezeigt werden kann, wird ein Parser benötigt. Aus den bloßen Zeichen des HTML-Codes formt der Parser eine Datenstruktur, die daraufhin ausgelesen und dem Nutzer auf dem Bildschirm angezeigt werden kann. Ähnlich arbeitet zum Beispiel ein Parser, der XML-Dokumente entsprechend aufbereitet. Auch Suchmaschinen wie Google arbeiten mit Parsern, um den Inhalt einer Website analysieren und aufbereiten zu können. Erst die Aufbereitung durch den Parser ermöglicht das einwandfreie Durchsuchen der entsprechenden Seiten. Die Qualität des Parsers hat daher auch einen großen Einfluss auf die Qualität der Suche, insofern arbeiten Suchmaschinenbetreiber stets an der Optimierung des Parsers.