Кіріспе

Yacc үйлесімді талдаушы генератор бағдарламасы.
Жасалған талдаушылар портативті: оларға ешқандай арнайы компиляторлар қажет емес. Bison әдепкі бойынша LALR(1) талдаушыларын жасаса да, каноникалық LR, IELR(1) және GLR талдаушыларын жасауға да болады. POSIX режимінде Bison Yacc-пен үйлесімді, бірақ бұл бағдарламадан бұрынғысына қарағанда бірнеше кеңейтімдері бар, соның ішінде:
Конфликттерге қарсы мысалдар жасау.
Орынды анықтау (мысалы, файл, жол, баған).
Жасалған талдаушыларда бай және халықаралық деңгейде қолданылатын синтаксистік қате туралы хабарламалар.
Синтаксистік қателерді жасауды өзгерту мүмкіндігі.
Қайта кіретін талдаушылар.
Автотолықтырумен жұмыс істейтін талдаушылар.
Аталған сілтемелерге қолдау.
Жасалған талдаушы туралы түрлі есептер (графикалық, XML).
Бірнеше бағдарламалау тілдерін қолдау (C, C++, D немесе Java).

Flex, автоматты лексикалық талдаушы, көбінесе кіріс деректерін токендеу үшін және Bison-ға токендерді беру үшін Bison-мен бірге қолданылады. "Бизон" бағдарламасын алғаш 1985 жылы Роберт Корбет жазған. Кейін, 1989 жылы Роберт Корбет Беркли Yacc деп аталатын тағы бір талдаушы генераторын шығарды. Ричард Столлман Bison-ды Yacc-пен үйлесімді етіп жасады. Bison – ашық кодты бағдарламалық қамтамасыз ету және GNU General Public License лицензиясы бойынша қолжетімді, оның жасалған кодын лицензияның авторлық құқықты сақтау талаптарын орындамай пайдалануға рұқсат беретін ерекшелікпен (төменде талқыланады).

Қайта кірісу

Қайта кіру – Bison-ға қосылған, ал Yacc-та жоқ мүмкіндік. Көбінесе Bison қайта кіруге қабілетсіз талдаушыны (parser) құрайды. Қайта кіруді қамтамасыз ету үшін `%define api. pure` декларациясын пайдалану керек. Bison-ның қайта кіру мүмкіндігі туралы толық ақпаратты Bison нұсқаулығынан табуға болады.

Шығару тілдері

Bison C, C++, D және Java тілдері үшін код жасай алады. Bison жасаған синтаксистік талдаушыны басқа тілдерден пайдалану үшін SWIG сияқты тілдік байланыс құралын қолдануға болады.

Шығарылған кодты лицензиялау және тарату

Bison өзге бағдарламалық жобалардың бастапқы кодына қосылатын бастапқы кодты жасайды, сондықтан қарапайым, бірақ қызықты авторлық құқық сұрақтары туындайды.

GPL-ға сәйкесті лицензия қажет емес

Bison құрамында Bison жобасының маңызды бөлігінің коды бар. Bison пакеті GNU General Public License (GPL) шартымен таратылады, бірақ нәтижеге GPL қолданылмауы үшін ерекше жағдай қосылды. Bison-ның бұрынғы нұсқаларында оның шығысының бір бөлігі бастапқы кодтан алынған yyparse функциясының енгізілуіне байланысты GPL лицензиясымен лицензияланған болатын.

Bison-ты қолдану арқылы пакеттерді тарату

Bison-ды қолданатын ашық кодты жобалар, өз жобаларына жіберілген бастапқы кодты немесе Bison жасаған C кодын таратуды таңдай алады. Екеуі де жобаның бастапқы кодын жинау үшін жеткілікті. Дегенмен, тек кірісті таратудың шағын қолайсыздығы бар, себебі алушыларда жобаны жинау үшін Bison-ның үйлесімді нұсқасы орнатылған болуы керек, сонда ғана қажетті C кодын жасауға болады. Ал тек C кодын тарату, қабылдаушылар үшін анализаторды өзгертуді қиындатады, өйткені бұл кодты адам жазған да емес, адамдарға арналған да емес – оның мақсаты тікелей C компиляторына берілуі. Мұндай мәселелерді енгізу файлдарын және жасалған кодты тарату арқылы болдырмауға болады. Көптеген адамдар жасалған кодты пайдаланады, бұл басқа бағдарламалық қамтамасыздан ешқандай айырмашылығы жоқ, бірақ анализатор бөлігін өзгертуді қалағандар алдымен кіріс файлдарын өзгертіп, жинау алдында жасалған файлдарды қайта жасауға болады. Екеуін де таратушы жобалар әдетте жасалған файлдарды өздерінің нұсқауларын бақылау жүйелерінде сақтамайды. Файлдар тек жарияланғанда ғана жасалады. GPL сияқты кейбір лицензиялар бастапқы кодтың «жұмысты өзгерту үшін арналған қалаулы түрінде» болуын талап етеді. Сондықтан, Bison-ды пайдаланатын GPL лицензиясы бар жобалар, Bison-ға жіберілген кіріс файлдарын таратуы керек. Әрине, олар жасалған файлдарды да қоса алады.