У аналізаторі LR (0) кожен стан складається з колекції елементів LR (0), які є виданнями, анотованими позицією. У аналізаторі LR (1) кожен стан складається з колекції предметів LR (1), що представляють собою постановки з анотацією позиції та символом пошуку.
Відомо, що з урахуванням стану в автоматі LR (1) конфігуруючий набір, утворений випаданням токенів lookahead з кожного елемента LR (1), дає конфігуруючий набір, відповідний деякому стану в автоматиці LR (0). У цьому сенсі головна відмінність LR (1) автомата від LR (0) автомата полягає в тому, що автомат LR (1) має більше копій станів в автоматі LR (0), кожен з яких анотований з lookahead інформація. З цієї причини автомати LR (1) для даної CFG, як правило, більше, ніж відповідний аналізатор LR (0) для цієї CFG.
Моє запитання - наскільки більшим може бути автомат LR (1). Якщо в алфавіті граматики є ять різних термінальних символів, то, в принципі, нам може знадобитися повторити кожен стан в автоматиці LR (0) принаймні один раз на підмножину цих n різних термінальних символів, що потенційно призводить до LR (1 ) автомат, це 2 п разів більше , ніж вихідне LR (0) автомата. Зважаючи на те, що кожен окремий елемент в автоматі LR (0) складається з набору різних елементів LR (0), ми можемо отримати ще більший вигляд.
Зважаючи на це, я не можу знайти спосіб побудувати сімейство граматик, для яких LR (1) автомат значно більший, ніж відповідний LR (0) автомат. Все, що я спробував, призвело до незначного збільшення розмірів (як правило, приблизно в 2-4 рази), але я не можу знайти шаблон, який призводить до великого вибуху.
Чи відомі сімейства безконтекстних граматик, чиї автомати LR (1) експоненціально перевищують відповідні автомати LR (0)? Або відомо, що в гіршому випадку ви насправді не можете отримати експоненціальний вибух?
Дякую!