Материалы для подготовки к экзамену
08 Мая 2015
Выкладываю вариант для подготовки к экзамену.
08 Мая 2015
Мы подошли к практической части нашего курса, почти всё что было до построения анализаторов покрывалось книгой Хопкрофта, Мотвани и Ульмана. Я рекомендую изучать алгоритмы построения анализаторов по книжке Серебрякова и по Dragon Book (Ахо, Сети, Ульман). В последней они описаны более подробно. Почему это всё работает, написано в книжке Ахо и Ульмана, но её очень сложно понять и расстояние между двумя нужными для понимания утверждениями порой достигает 100 страниц. В теории к заданиям я попытаюсь пролить свет на некоторые вещи, но это довольно трудно, и не факт что получится. Про LR-анализаторы также написано в книжке Шеня, там есть хороший шанс понять что происходит.
Для проверки и более наглядного изучения есть конструктор анализаторов. По умолчанию все нетерминалы — заглавные буквы, все терминалы — строчные. Правила записываются в виде "A -> a|B". Каждое правило, быть может с разделителями, начинается с новой строки. Пустое слово = e.
Если запускать программу под IE, то можно, при некоторой удаче, увидеть дерево разбора анализируемого слова. Под остальными браузерами придётся включать воображение и соединять точки.
Теорема Майхилла-Нероуда
06 Апреля 2015
С теоремой Майхилла-Нероуда, которая позволяет доказывать как регулярность, так и нерегулярность языка, можно ознакомиться в тексте Задания 5 к аналогичному курсу.
Домашние упражнения на 17/04
06 Апреля 2015
-
Найти ошибку в алгоритме минимизации конечного автомата.
-
Доказать или опровергнуть контрпримером, что грамматика $S \to SaSbS\mid SbSaS\mid \varepsilon $ порождает язык $\{w \mid |w|_a = |w|_b \}$.
-
Придумать грамматику для правильных скобочных выражений с двумя типами скобок (и доказать корректность) или разобраться с доказательством корректности известной грамматики.