क्या GPL बाइसन व्याकरण मेरे आवेदन को संक्रमित करता है?


10

मैं अपने कंपाइलर के लिए जीपीएल बाइसन व्याकरण का उपयोग करने के बारे में सोच रहा हूं।

क्या व्याकरण मेरे पार्सर को "संक्रमित" करेगा जैसे कि उसे खुला स्रोत होना चाहिए?

व्याकरण - के संदर्भ में - बायसन का इनपुट जी.पी.एल.


2
कृपया स्पष्ट करें। क्या आपका मतलब है व्याकरण (यानी बाइसन के लिए इनपुट) जीपीएल है या क्या आप बाइसन का उपयोग करने के बारे में चिंतित हैं क्योंकि यह जीपीएल है?
क्रेग

@ किसी प्रोग्राम का आउटपुट आमतौर पर उस प्रोग्राम के लाइसेंस के अंतर्गत नहीं होता है जो उसे उत्पन्न करता है। हालाँकि, bisonइसमें एक बड़ी मात्रा में कोड शामिल होता है जो इसके आउटपुट में GPL के अंतर्गत होता है, जिसका अर्थ होता है कि इसका उपयोग करने वाला कोई भी चीज़ GPL के अंतर्गत होगा ... जब तक कि कोई अपवाद न हो कि गैर-gpl प्रोग्राम्स के लिए बायसन का उपयोग करने में सक्षम हो ।

@MichaelT हां, लेकिन अगर उनका मतलब है कि व्याकरण खुद को GPL द्वारा कवर किया गया है (उदाहरण के लिए इसे GPL प्रोग्राम से लिया गया था) तो व्याकरण का GPL शायद उनके कार्यक्रम को एक व्युत्पन्न कार्य बना देगा। वास्तविक प्रश्न के स्पष्टीकरण की आवश्यकता है।
क्रेग

बाइसन LALR (1) भाषाओं के लिए पार्सर उत्पन्न करता है। यदि आपकी भाषा स्वाभाविक रूप से LALR (1) है, तो संभवतः इसमें कुछ काफी गंभीर क्रॉक हैं जो यूएसई के साथ-साथ पार्स करने में भी मुश्किल बनाते हैं। आपको संभवतः अपनी भाषा को सरल बनाने से बहुत अधिक लिफ्ट मिलेगी कि आप इसके लिए एक सीधी पुनरावर्ती वंश पार्सर (आरडीपी) लिख सकते हैं। RDPs LALR (1) व्याकरण और पार्सिंग क्रियाओं की तुलना में लिखने और बनाए रखने में काफी आसान हैं।
जॉन आर। स्ट्रोहम

स्पष्टीकरण के लिए: मेरा मतलब था बाइसन का इनपुट
स्टासिक

जवाबों:


7

जबकि बाइसन को ही GPL के तहत लाइसेंस प्राप्त है, Bison द्वारा बनाया गया पार्सर GPL द्वारा स्वचालित रूप से कवर नहीं किया जाता है, कम से कम बाइसन के हाल के संस्करणों के साथ नहीं:

बाइसन का उपयोग करने के लिए शर्तें

बाइसन जनरेटेड पार्सर्स के लिए वितरण की शर्तें नॉनफ्री कार्यक्रमों में पार्सर्स का उपयोग करने की अनुमति देती हैं। बाइसन संस्करण 2.2 से पहले, इन अतिरिक्त अनुमतियों को केवल तब लागू किया गया था जब बाइसन सी में एलएएलआर (1) पार्सर्स उत्पन्न कर रहा था और बाइसन संस्करण 1.24 से पहले, बाइसन-जनरेटेड पार्सर केवल उन कार्यक्रमों में उपयोग किया जा सकता था जो मुफ्त सॉफ्टवेयर थे।

स्रोत: http://www.gnu.org/software/bison/manual/bison.html#Conditions

हालांकि, जीपीएल-लाइसेंस प्राप्त व्याकरण से निर्मित एक पार्सर को जीपीएल द्वारा भी कवर किया जाता है, क्योंकि यह "व्याकरण पर आधारित काम है" (यह एक प्रोग्राम को संकलित करने की तरह एक स्वचालित रूपांतरण है)।

बेशक, सभी कानूनी मामलों में, कोई निश्चित जवाब नहीं है, और यहां तक ​​कि वकील और न्यायाधीश भी असहमत हो सकते हैं, लेकिन मेरा मानना ​​है कि यह आम सहमति है।


2
मुझे नहीं लगता कि वह बाइसन के लाइसेंस के बारे में पूछ रहा है, वह व्याकरण के लाइसेंस के बारे में पूछ रहा है।
जोर्ग डब्ल्यू मित्तग

3
वास्तविक लाइसेंस अपवाद जो आपको गैर-मुक्त परियोजनाओं में बाइसन-जनरेट किए गए पार्सर का उपयोग करने की अनुमति देता है, वह यहां पाया जा सकता है: git.savannah.gnu.org/cgit/bison.git/tree/src/parse-gram
Bart van Ingen Schenau

3
@ JörgWMittag: चूंकि बाइसन जीपीएल सॉफ्टवेयर है और बाइसन के कुछ हिस्से इसे उत्पन्न व्याकरण में बनाते हैं, इसलिए बाइसन का लाइसेंस बहुत प्रासंगिक है।
बार्ट वैन इनगेन शेंउ

@BartvanIngenSchenau: हाँ, लेकिन यह सवाल अप्रासंगिक है। ओपी यह नहीं पूछ रहा था कि क्या बाइसन जीपीएल अपने पार्सर को बाइसन का व्युत्पन्न कार्य बना देता है, वह पूछ रहा था कि क्या जीपीएल होने के कारण व्याकरण उनके पार्सर को व्याकरण का व्युत्पन्न कार्य बनाता है या नहीं।
जोर्ग डब्ल्यू मित्तग

@ JörgWMittag: मैं देखता हूं कि भ्रम कहां से आता है। यह ओपी से स्पष्टीकरण की आवश्यकता है
बार्ट वैन इनगेन शेनौ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.