Задачи для экзамена
-
Рассмотрим описания в языке С, включающие целые и вещественные типы,
обычные переменные, указатели, массивы (в том числе неопределенной длины)
и прототипы функций. Примеры:
int n;
double a;
int *p;
int *p[];
double (*a)[10];
double f(double);
int a[][10];
int (*f)(int, double*);
int (*(*f)(int, double*))[10][20];
Написать однозначную контекстно свободную грамматику этого языка.
-
Построить детерминированный конечный автомат, эквивалентный
данному недетерминированному (прислать рисунок).
-
Для данного детерминированного конечного автомата выписать
регулярное выражение, определяющее тот же самый язык.
(Применить алгоритм из доказательства теоремы Клини.)
-
Допускает ли следующая грамматика LR(0)-разбор?
S -> F$
F -> L;
L -> a | L, a
Выписать систему состояний LR(0)-разбора и указать, есть ли в ней
конфликты.
|