Apakah tata bahasa GPL Bison menginfeksi aplikasi saya?


10

Saya berpikir tentang menggunakan tata bahasa GPL Bison untuk kompiler saya sendiri.

Apakah tata bahasa akan "menginfeksi" parser saya sedemikian rupa sehingga perlu open source?

Tata bahasa - dalam hal - input bison adalah GPL.


2
Mohon klarifikasi. Apakah maksud Anda tata bahasa (yaitu input ke Bison) adalah GPL atau Anda khawatir menggunakan Bison karena itu GPL?
Craig

@Craig output dari suatu program biasanya tidak di bawah lisensi dari program yang menghasilkannya. Namun, bisontermasuk jumlah kode yang cukup besar yang berada di bawah GPL dalam outputnya, yang berarti bahwa apa pun yang menggunakannya akan berada di bawah GPL juga ... kecuali ada pengecualian untuk dapat menggunakan bison untuk program non-gpl .

@MichaelT Ya tapi jika dia maksudkan bahwa tata bahasa itu sendiri dicakup oleh GPL (misalnya diambil dari program GPL) maka GPL tata bahasa mungkin akan membuat programnya merupakan karya turunan. Klarifikasi dari pertanyaan aktual diperlukan.
Craig

Bison menghasilkan parser untuk bahasa LALR (1). Jika bahasa Anda secara inheren LALR (1), mungkin ada beberapa buaya yang cukup serius di dalamnya yang membuatnya sulit untuk DIGUNAKAN serta sulit untuk diurai. Anda mungkin akan mendapatkan lebih banyak dorongan dari menyederhanakan bahasa Anda cukup sehingga Anda dapat menulis parser keturunan rekursif langsung (RDP) untuk itu. RDP cenderung lebih mudah untuk ditulis dan dipelihara daripada LALR (1) tata bahasa dan tindakan penguraian.
John R. Strohm

untuk klarifikasi: maksud saya masukan dari bison
Stasik

Jawaban:


7

Sementara Bison sendiri dilisensikan di bawah GPL, sebuah parser yang dibuat oleh Bison tidak secara otomatis tercakup oleh GPL, setidaknya tidak dengan versi Bison terbaru:

Ketentuan untuk Menggunakan Bison

Ketentuan distribusi untuk parser yang dihasilkan Bison mengizinkan penggunaan parser dalam program yang tidak bebas. Sebelum Bison versi 2.2, izin tambahan ini hanya diterapkan ketika Bison menghasilkan parser LALR (1) di C. Dan sebelum Bison versi 1.24, parser yang dihasilkan Bison hanya dapat digunakan dalam program yang merupakan perangkat lunak bebas.

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

Namun, parser yang dibuat dari tata bahasa berlisensi GPL kemungkinan besar juga dicakup oleh GPL, karena itu adalah "karya berdasarkan" tata bahasa (itu adalah konversi otomatis, seperti menyusun program).

Tentu saja, seperti dalam semua masalah hukum, tidak ada jawaban yang pasti, dan bahkan pengacara dan hakim mungkin tidak setuju, tetapi saya percaya ini adalah konsensus umum.


2
Saya tidak berpikir dia bertanya tentang lisensi Bison, dia bertanya tentang lisensi tata bahasa.
Jörg W Mittag

3
Pengecualian lisensi aktual yang memungkinkan Anda untuk menggunakan parser yang dihasilkan Bison dalam proyek-proyek tidak bebas dapat ditemukan di sini: git.savannah.gnu.org/cgit/bison.git/tree/src/parse-gram.h
Bart van Ingen Schenau

3
@ JörgWMittag: Karena Bison adalah perangkat lunak GPL dan sebagian Bison membuatnya menjadi tata bahasa yang dihasilkan, lisensi Bison sangat relevan.
Bart van Ingen Schenau

@ BartvanIngenSchenau: Ya, tapi itu tidak relevan dengan pertanyaan. OP tidak bertanya apakah Bison menjadi GPL menjadikan parsernya merupakan karya turunan Bison, ia bertanya apakah tata bahasa menjadi GPL menjadikan parsernya merupakan karya turunan tata bahasa.
Jörg W Mittag

@ JörgWMittag: Saya melihat dari mana kebingungan itu berasal. Ini perlu klarifikasi dari OP
Bart van Ingen Schenau
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.