Вариант-2, который был у меня: 1. Для регулярного выражения (ab|b)*(a|e)|c*ba над алфавитом T={a,b,c} построить эквивалентный детерминированный конечный автомат. Для полученного автомата построить эквивалентную праволинейную грамматику. 2. Является ли грамматика G={{S,A,C},{a,b,c,},{S->AbC,A->Aa|b,C->cC|c},S} LR(1)-грамматикой? Построить детерминированный правый анализатор. Продемонстрировать работу анализатора на цепочке babcc. 3. Для арифметического выражения A - B * C * ( C - A ) / ( C + A ) с помощью алгоритма Сети-Ульмана сгенерировать код и изобразить атрибутированное дерево. 4. Для грамматики G={{S,A,B},{a,b,c},{S->ab|ASCc,A->Aa|bA,C->a|b|c},S} написать эквивалентную приведенную грамматику. Является ли полученная грамматика однозначной? Является ли исходная грамматика эквивалентной автомату {{q0,q1,q2},{a,b,c},{(q0,a)->q1;(q1,b)->q2},q0,{q0,q2}}. 5. Для оператора присваивания a = b[2 + c[4]] + c[j+4] сгенерировать оптимальный код методом сопоставления образцов.