GNU Bison

Bison ist ein freier universeller Parsergenerator aus dem GNU-Projekt. Bison übersetzt eine Grammatikbeschreibung einer kontextfreien Grammatik in ein C-, C++- oder Java-Programm, das eine Serie von Tokens parsen kann, deren Aufbau dieser Grammatik folgt (sogenannter LALR-Parser). Weiterhin kann es auch allgemeinere Tomita-Parser für uneindeutige Grammatiken erzeugen.

GNU Bison
Basisdaten
Maintainer Akim Demaille, Joel E. Denny, Paul Eggert
Entwickler GNU-Projekt
Erscheinungsjahr Juni 1985[1]
Aktuelle Version 3.8.2
(25. September 2021)
Betriebssystem Unix-ähnliche
Programmiersprache C/C++
Kategorie Parsergenerator
Lizenz GPL (Freie Software)
www.gnu.org/software/bison

Im POSIX-Modus ist Bison kompatibel zu dem älteren Yacc, wobei es demgegenüber einige Verbesserungen implementiert (aufwärtskompatibel). Aus einer Syntaxbeschreibung einer Programmiersprache in einem Format ähnlich der Backus-Naur-Form erzeugt es einen Parser auf Basis eines Kellerautomaten, der als Element zur syntaktischen Analyse zusammen mit einem lexikalischen Scanner wie flex[2] (freie Alternative zu Lex) als einem weiteren Programmmodul zur Erstellung eines Compilers oder Interpreters eingesetzt werden kann.

Bison ist als freie Software unter der GNU General Public License (GPL) veröffentlicht. Es wurde hauptsächlich von Robert Corbett entwickelt. Richard Stallman machte es (aufwärts)kompatibel zu Yacc.

Geschichte

Bison w​urde bereits i​n der zweiten Hälfte d​er 1980er Jahre entwickelt.[3] Version 1.00 w​urde am 26. Mai 1988 veröffentlicht.[4]

Durch d​ie Einbindung d​er (GPL-lizenzierten) Funktion yyparse() a​us dem Bison-Code standen d​ie erzeugten Parserprogramme ebenfalls u​nter der GPL. Ab Version 1.24 besteht h​ier eine Ausnahme, d​urch die d​ie Ausgabe a​uch als proprietäre Software verwendet werden darf.[5]

Einzelnachweise

  1. In: Static Semantics and Compiler Error Recovery.
  2. flex auf GitHub
  3. Liste der ersten Beiträge im Code-Repositorium
  4. Projektübersicht zu oldbison bei Google Code
  5. Conditions for Using Bison
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.