У мене проблема з цією вправою:
Нехай G - наступна неоднозначна граматика λ-числення:
E → v | λv.E | EE | (E)
де E - єдиний нетермінальний символ, λv.E являє собою абстракцію wrt змінної v в E, а EE являє додаток.
- Визначте граматику LL (1) G 'так, що L (G ′) = L (G), і неоднозначність G вирішується шляхом накладення наступних звичайних умов:
- абстракція - правильна асоціативна;
- додаток залишається асоціативним;
- додаток має більший пріоритет, ніж абстракція.
- Покажіть таблицю розбору LL (1) для G 'та дерево розбору, отримане при розборі рядка
λv1. λv2. v1v2v1
.
Я усунув неоднозначність встановлення пріоритету та асоціації, отримавши цю граматику:
E -> EF | F
F -> λv.G | G
G -> (E) | v
що не є LL (1), оскільки виробництво E -> EF
залишається рекурсивним. Однак, виключаючи ліву рекурсію з цього виробництва, я отримую:
E -> FE¹
E¹-> FE¹ | ɛ
F -> λv.G | G
G -> (E) | v
що не відповідає вимозі 1.2.
Я шукав рішення в Інтернеті, але здається, що усунути ліву рекурсію, що зберігає ліву асоціативність, неможливо.
Однак ця вправа з’явилася на іспиті з укладачів кілька років тому, тому повинна бути правильна відповідь.
Дякую за твою допомогу.