Infiziert eine GPL-Bison-Grammatik meine Anwendung?


10

Ich denke darüber nach, eine GPL-Bison-Grammatik für meinen eigenen Compiler zu verwenden.

Wird die Grammatik meinen Parser so "infizieren", dass er Open Source sein muss?

Die Grammatik - in Bezug auf - die Eingabe von Bisons ist GPL.


2
Bitte klären Sie. Meinen Sie damit, dass die Grammatik (dh die Eingabe in Bison) GPL ist, oder sind Sie besorgt über die Verwendung von Bison, weil es GPL ist?
Craig

@Craig Die Ausgabe eines Programms steht normalerweise nicht unter der Lizenz des Programms, das es generiert hat. Jedoch bisonenthält eine beträchtliche Menge an Code, der unter der GPL in seinem Ausgang, das dass alles , was bedeuten würde , die verwendet wird, würde es auch unter der GPL sein ... es sei denn es eine Ausnahme war in der Lage sein , Programme zu verwenden , Bison für Nicht-gpl .

@MichaelT Ja, aber wenn er meint, dass die Grammatik selbst von der GPL abgedeckt wird (z. B. aus einem GPL-Programm), wird die GPL der Grammatik sein Programm wahrscheinlich zu einer abgeleiteten Arbeit machen. Eine Klärung der eigentlichen Frage ist erforderlich.
Craig

Bison generiert Parser für LALR (1) -Sprachen. Wenn Ihre Sprache von Natur aus LALR (1) ist, enthält sie wahrscheinlich einige ziemlich schwerwiegende Fehler, die die Verwendung und das Parsen erschweren. Wenn Sie Ihre Sprache so weit vereinfachen, dass Sie einen einfachen RDP (Recursive Descent Parser) dafür schreiben können, werden Sie wahrscheinlich viel mehr Auftrieb bekommen. RDPs sind in der Regel wesentlich einfacher zu schreiben und zu warten als LALR (1) -Grammatiken und Parsing-Aktionen.
John R. Strohm

Zur Verdeutlichung: Ich meinte die Eingabe von Bison
Stasik

Antworten:


7

Während Bison selbst unter der GPL lizenziert ist, wird ein von Bison erstellter Parser nicht automatisch von der GPL abgedeckt, zumindest nicht mit neueren Versionen von Bison:

Bedingungen für die Verwendung von Bison

Die Verteilungsbedingungen für von Bison generierte Parser erlauben die Verwendung der Parser in nicht freien Programmen. Vor Bison Version 2.2 galten diese zusätzlichen Berechtigungen nur, wenn Bison LALR (1) -Parser in C generierte. Vor Bison Version 1.24 konnten Bison-generierte Parser nur in Programmen verwendet werden, die freie Software waren.

Quelle: http://www.gnu.org/software/bison/manual/bison.html#Conditions

Ein Parser, der aus einer GPL-lizenzierten Grammatik erstellt wurde, wird höchstwahrscheinlich auch von der GPL abgedeckt, da es sich um eine "Arbeit basierend auf" der Grammatik handelt (es handelt sich um eine automatische Konvertierung wie das Kompilieren eines Programms).

Natürlich gibt es, wie in allen rechtlichen Angelegenheiten, keine endgültige Antwort, und selbst Anwälte und Richter mögen anderer Meinung sein, aber ich glaube, dies ist der allgemeine Konsens.


2
Ich glaube nicht, dass er nach der Lizenz von Bison fragt, er fragt nach der Lizenz der Grammatik.
Jörg W Mittag

3
Die tatsächliche Lizenzausnahme, mit der Sie einen von Bison generierten Parser in nicht freien Projekten verwenden können, finden Sie hier: git.savannah.gnu.org/cgit/bison.git/tree/src/parse-gram.h
Bart van Ingen Schenau

3
@ JörgWMittag: Da Bison GPL-Software ist und Teile von Bison es in die generierte Grammatik schaffen, ist die Lizenz von Bison sehr relevant.
Bart van Ingen Schenau

@BartvanIngenSchenau: Ja, aber das ist für die Frage irrelevant. Das OP fragte nicht, ob Bison als GPL seinen Parser zu einer abgeleiteten Arbeit von Bison macht, sondern ob die Grammatik als GPL seinen Parser zu einer abgeleiteten Arbeit der Grammatik macht.
Jörg W Mittag

@ JörgWMittag: Ich sehe, woher die Verwirrung kommt. Dies muss vom OP geklärt werden
Bart van Ingen Schenau
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.