GOLD Parsing System

Aus MARJORIE-WIKI
Wechseln zu: Navigation, Suche
GOLD Parsing System
GOLD logo.gif
GOLD Builder v3.4.gif
Basisdaten
Maintainer Devin Cook
Aktuelle Version 5.2.0
(2012-08-18)
Betriebssystem Windows
Kategorie Parser
Lizenz zlib-Lizenz
www.goldparser.org

Das GOLD Parsing System (Grammar Oriented Language Developer) ist eine freie Software (unter zlib-Lizenz) für die Erstellung von Parsern und Interpretern für Formale Sprachen, zum Beispiel Skriptsprachen. Der Parser arbeitet nach dem LALR-Prinzip. Zur Festlegung der Syntax der Programmiersprache wird eine Grammatik in Backus-Naur-Form abgelegt.

Die Software besteht aus folgenden Komponenten:

  • Der Builder wird benutzt, um eine in der sog. GOLD-Metasprache geschriebene Formale Grammatik in Parse-Tabellen zu übersetzen. Der Builder ist Teil einer integrierten Entwicklungsumgebung, die auch einen Generator für Programmskelette sowie eine interaktive Testumgebung für Grammatiken enthält.
  • Die übersetzte Grammatik wird durch den Builder als Datei bereitgestellt.
  • Die Engine überführt den zu parsenden Text anhand der Parse-Tabellen in Automaten. Es stehen Engines für verschiedene Zielplattformen und Programmiersprachen zur Verfügung. Für folgende Plattformen sind (teilweise mehrere) Engines verfügbar: C, C++, .Net-Framework, Java, D, Delphi, Visual Basic Classic, Python.

Beim Parsen eines Quelltextes werden die einzelnen Symbole einer Regel solange gelesen, bis diese vollständig ist. Im Anschluss wird die Regel reduziert. Bei der Reduktion wird die Regel ein Symbol der übergeordneten Regel. Auf diese Weise ergibt sich eine Baumstruktur, der sog. „Derivation tree“. Dieser spiegelt die logische Struktur des Quelltextes wider. Die Baumstruktur ist nicht Teil des GOLD Parsing Systems. Der Parser informiert den Aufrufer vielmehr über die gelesenen Symbole und die Reduktionen. Es ist an der Anwendung, sich einen passenden Baum aufzubauen.

Weblinks[Bearbeiten]

Info Sign.svg Dieser Wikipedia-Artikel wurde, gemäß GFDL, CC-by-sa mit der kompletten History importiert.