Введение в Unix

       

Средства реализации языков программирования


До сих пор речь шла о разработке программ на языках программирования, реализованных в системе (т.е. имеющих компилятор и линкер). Если вас, как опытного пользователя, не устраивают эти предопределенные языки и вы хотите реализовать свой язык, то и в этом вам поможет система UNIX, предоставляя утилиты lex и yacc.

Утилита lex является текстовым процессором, реализующим лексический анализ, необходимый при создании компиляторов и других языковых процессоров.

Утилита yacc (yet another compiler compiler) конвертирует безконтекстную грамматику в таблицы, управляющие грамматическим разбором посредством LR(1)-автомата. Формируемые при этом правила предшествования позволяют избавиться от двусмысленностей исходной грамматики.

Совместное использование утилит lex и yacc является мощным подспорьем для быстрой реализации языковых процессоров в среде системы UNIX [9,10,11].



Содержание раздела