Parsergenerator

Parsergenerator

Ein Parsergenerator ist ein Computerprogramm, das unter Eingabe einer Spezifikation einen Parser erzeugt.

Inhaltsverzeichnis

Grundlagen

Ein Parsergenerator erzeugt für (Programmier-)Sprachen Unterprogramme zu deren grammatikalischer Analyse und Transformation. Die erzeugten Unterprogramme werden Parser genannt. Als Eingabe erhält ein Parsergenerator die Sprachsyntax für die er einen Parser erzeugen soll. Zum Beispiel werden Quellprogramme von Programmiersprachen durch einen Parser in eine Baumstruktur überführt.

Viele Parsergeneratoren benötigen einen Scanner für die Symbolerkennung. Dieser Scanner wird in der Regel von einem externen oder einem integrierten Scannergenerator erzeugt.

Die vom Parser erzeugte Repräsentation bildet die Grundlage für einen Compiler oder Interpreter.

Der Aufwand zum Erzeugen eines leistungsfähigen und korrekten Compilers wird durch Parsergeneratoren deutlich reduziert.

Algorithmen

Effiziente Parsergeneratoren beschränken sich darauf, Parser für deterministisch kontextfreie Grammatiken zu erzeugen. Folgende Algorithmen werden von gängigen Parser-Generatoren verwendet:

Die Spezifikation des Parsers erfolgt in Backus-Naur-Form (BNF) oder Erweiterter Backus-Naur-Form (EBNF).

Darüber hinaus gibt es weitere Paradigmen (z.B. GLR-Parser), die eine größere Klasse von Grammatiken abdecken, aber weniger gebräuchlich sind.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Übersetzerbau — Der Compilerbau, deutsch Übersetzerbau, ist eine Disziplin der Informatik. Sie beschäftigt sich mit dem Entwurf und der Programmierung von Compilern, die einen Quellcode (ein meist in einer höheren Programmiersprache verfasstes Programm, also… …   Deutsch Wikipedia

  • Compilerbau — Der Compilerbau, deutsch Übersetzerbau, ist eine Disziplin der Informatik. Sie beschäftigt sich mit dem Entwurf und der Programmierung von Compilern, die einen Quellcode (ein meist in einer höheren Programmiersprache verfasstes Programm, also… …   Deutsch Wikipedia

  • Parser-Generator — Ein Parsergenerator ist ein Computerprogramm, das unter Eingabe einer Spezifikation einen Parser erzeugt. Inhaltsverzeichnis 1 Grundlagen 2 Algorithmen 3 Siehe auch 4 Weblinks // …   Deutsch Wikipedia

  • C-Plusplus-Metaprogrammierung — C++ Metaprogrammierung bezeichnet die Technik der Metaprogrammierung innerhalb der Programmiersprache C++, also eine Technik, um in C++ Programmcode von Programmcode generieren zu lassen. Dabei kommen besonders Templates zum Einsatz, daher… …   Deutsch Wikipedia

  • C -Metaprogrammierung — C++ Metaprogrammierung bezeichnet die Technik der Metaprogrammierung innerhalb der Programmiersprache C++, also eine Technik, um in C++ Programmcode von Programmcode generieren zu lassen. Dabei kommen besonders Templates zum Einsatz, daher… …   Deutsch Wikipedia

  • Code-Generator — Ein Codegenerator ist ein Computerprogramm für die Softwareentwicklung. Er übersetzt Modelle, die in UML, XML, Struktogrammen oder einer anderen formalen Sprache erstellt wurden, in die Programmiersprache (C, C++, Assembler, …) der gewählten… …   Deutsch Wikipedia

  • DCFL — Eine deterministisch kontextfreie Sprache ist eine Sprache, die von einem deterministischen Kellerautomaten akzeptiert wird. Manchmal wird auch der gekürzte Begriff deterministische Sprache verwendet. Die Definition geht auf Seymour Ginsburg und… …   Deutsch Wikipedia

  • Deterministisch kontextfreie Sprache — Eine deterministisch kontextfreie Sprache ist eine Sprache, die von einem deterministischen Kellerautomaten akzeptiert wird. Manchmal wird auch der gekürzte Begriff deterministische Sprache verwendet. Die Definition geht auf Seymour Ginsburg und… …   Deutsch Wikipedia

  • Lexikalische Analyse — Ein lexikalischer Scanner (kurz Lexer) ist ein Computerprogramm zur Zerlegung von Eingaben in Folgen von logisch zusammengehörigen Einheiten, so genannte Token (engl. tokens). Grundlagen Bei der Zerlegung einer Eingabe in eine Folge von logisch… …   Deutsch Wikipedia

  • Lexikalischer Scanner — Ein lexikalischer Scanner (kurz Lexer) ist ein Computerprogramm zur Zerlegung von Eingaben in Folgen von logisch zusammengehörigen Einheiten, so genannte Token (engl. tokens). Grundlagen Bei der Zerlegung einer Eingabe in eine Folge von logisch… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”