LL(k)-грамматики, множества FIRST и FOLLOW
Версия от 22:02, 27 июня 2014; Shersh (обсуждение | вклад) (добавлено введение, поправлено определение)
Эта статья находится в разработке!
Наибольший интерес в построении синтаксических анализаторов (парсеров) представляют LL(1)-грамматики, так как для них возможно построение нисходящих парсеров без возврата, то есть без корректировки выбранных правил в грамматике. LL(1)-грамматики являются подмножеством КС-грамматик. Однако для достаточно большого количества формальных языков можно построить LL(1)-грамматику, например, для языка арифметических выражений и даже для некоторых языков программирования, в частности можно и для языка Java.
LL(k)-грамматика
Дадим теперь формально определение LL(k)-грамматики.
Определение: |
Пусть где | — КС-грамматика. Рассмотрим возникновение следующей ситуации во время левостороннего вывода в этой грамматике слова :
TODO: LL(1)-грамматика
TODO: FIRST и FOLLOW, примеры (скобочные последовательности)
TODO: Теорема об LL(1)-грамматиках
TODO: Пара следствий
TODO: Какие-нибудь примеры