Компилатор на Bison Compiler - Първи стъпки

Bison е GNU издание на добре познатата програма YACC, предназначена да генерира компилатори от дефинирана от потребителя граматика KC.

Една от последиците от разширяването на възможностите и наличността на използването на изчислителни технологии се превърна в производството на приложни софтуерни системи с все по-разнообразно и сложно поведение. В същото време основният принцип на кибернетиката - принципът на необходимото и достатъчно разнообразие, формулиран от Н. Уинър и Р. Ашби преди 1960 г., гласи, че степента на многообразие на управлението на такъв субект трябва да съответства на степента на разнообразие на поведението му.

От определено ниво на разнообразие (сложност) на управлението на такава система се оказва по-лесно и по-надеждно да се предложи на потребителя строго определен официален език, с помощта на който потребителят информира системата за задача за изпълнение на определени от основните му задачи, вкл. определя състава и честотата на издаване на счетоводни и уведомителни съобщения за напредъка на това изпълнение и др.

Например за контрол на въздушното движение, вкл. в Руската федерация съответните международни организации са разработили и използват официален език от няколко десетки изречения, които недвусмислено комуникират в автоматизиран и ръчен режим за всяко достатъчно значимо събитие при използването на самолет и неговите характеристики: излитане, промяна на курса, преминаване контролно-пропускателен пункт, кацане, възникване на различни други вероятни обстоятелства, които могат и трябва да бъдат предвидени. Обичайно е да добавяте и прецизирате този списък от команди и/или техните параметри от време на време, както е решено от съответните комитети. Тези промени трябва да бъдат направени бързо и надеждно в съответните системи за управление.

За да проверите верността и да анализирате изреченията на такива официални езици, както знаете, използвайте програма, наречена компилатор.

Ако се научим да получаваме такъв компилатор автоматично въз основа на граматиката, която описва този език, тогава можем да направим всички промени (например добавки) в потребителския език много бързо и в същото време, което е много важно, доста надеждно.

Значението и нарастващото разпространение на тази задача беше осъзнато в програмирането доста бързо и поради това се появиха редица различни софтуерни инструменти за автоматизираното разработване на компилатори за езици, дефинирани от граматики без контекст. И така, самото име на YACC компилатора, известно повече от две десетилетия, се превежда като „Още един компилатор на компилатор“. Като тест за сила и умения за усъвършенстване производството на такива системи продължава и днес, особено в техническите университети (вж. Например, http : // www . напред . орг . ru ) .

Собственият компилаторен компилатор, наречен "SUPER", е създаден преди повече от 15 години и в Изчислителния център на Академията на науките на СССР (сега Изчислителен център на Руската академия на науките, www.ccas.ru) под ръководството на . l aur. държава награди, гл. секти. Изчислителен център RAS, доц. MIPT, доктор Владимир Михайлович Курочкин, вече починал. Последният, преди повече от 30 години, въз основа на FUPM и курса "Теория и прилагане на програмни езици".

Повечето от тези системи (включително YACC) обаче са разработени в търговската мрежа или им липсва гъвкавост, надеждност и ефективност. Следователно, важно събитие в света на безплатния (по смисъла на лиценза GNU) софтуер беше разработването на GNU-аналог на YACC компилатора, наречен BISON. Сега този компилатор на компилатор може да се използва за разработване на софтуерни системи с най-високи изисквания за качеството на лицензиране на използваните инструменти.