microbik.ru
1
ТЕОРИЯ АВТОМАТОВ И ФОРМАЛЬНЫХ ЯЗЫКОВ

составил доцент А.А. Мальцев

ЦЕЛЬ КУРСА



Настоящий курс ставит своей целью ознакомление обучаемых с устройством теории формальных языков, а также с основными принципами, методами и алгоритмами синтаксического анализа формальных языков (в т.ч. языков программирования).
В рамках программы приводятся сведения о способах описания формальных языков, моделях вычислений, используемых для представления формальных языков, о задаче синтаксического анализа и методах ее решения и иных приложениях. Рассматриваются проблемы сложности преобразований и неразрешимости ряда задач, связанных с грамматиками и языками.
Предполагается знания из курса теории алгоритмов.

ПРОГРАММА КУРСА





  1. Введение. Исторические сведения. Происхождение, первоначальные ожидания от теории формальных грамматик (в анализе естественного языка). Отказ от изначальных применений и переход к приложениям в формальных языках.

  2. Основные понятия теории автоматов. Алфавиты, слова, языки. Операции над словами и языками. Задача синтаксического анализа. Основные понятия формальных грамматик. Терминальные и нетерминальные символы. Правила вывода. Грамматический вывод. Классификация формальных грамматик. Иерархия Хомского формальных языков.

  3. Конечные автоматы. Детерминированные конечные автоматы (ДКА). Диаграммы Мура (системы переходов). Вычисления ДКА. Язык ДКА. Недетерминированные конечные автоматы (НКА). Язык НКА. Теорема о детерминизации НКА. Пример экспоненциального увеличения размеров автомата при построении эквивалентного детерминированного. Конечные автоматы с пустыми переходами. Теорема об устранении пустых переходов. Операции над конечными автоматами. Эквивалентность и минимизация конечных автоматов. Проверка эквивалентности состояний. Алгоритм минимизации ДКА.

  4. Регулярные выражения. Операторы регулярных выражений. Регулярные выражения. Языки регулярных выражений. Построение регулярных выражений. Построение регулярного выражения по ДКА. Алгоритм преобразования регулярных выражений в ДКА. Теорема Клини. Лексический анализ. Применение регулярных выражений для решения задач лексического анализа. Алгебра Клини регулярных выражений. Основные законы алгебры Клини.

  5. Регулярные языки. Свойства замкнутости регулярных языков относительно теоретико-множественных операций, конкатенации, обращения, гомоморфизма. Различные способы задания регулярных языков. Теорема о совпадении классов регулярных языков, языков ДКА и языков регулярных выражений. Проверка пустоты регулярных языков и алгоритмы ее решения. Проблема принадлежности слова регулярному языку и алгоритмы ее решения. Лемма накачки. Применение леммы накачки для доказательства нерегулярности языков.

  6. Контекстно-свободные грамматики и языки и автоматы с магазинной памятью. Определение контекстно-свободных (КС) грамматик. Контекстно-свободный грамматический вывод. Примеры кс-языков. Деревья разбора. Взаимосвязь грамматических выводов и деревьев разбора. Определение автомата с магазинной памятью (МПА). Вычисления МПА. Языки МПА. Допустимость по заключительному состоянию и по пустому магазину. Эквивалентность двух определений допустимости МПА. Преобразование кс-грамматики в МПА. Построение кс-грамматики по МПА. Детерминированные МПА (ДМПА). Теорема о дополнении детерминированного КС-языка. Соотношение между регулярными языками, кс-языками и языками ДМПА. Свойства контекстно-свободных грамматик.

  7. Нормальные формы кс-грамматик. Приведение кс-грамматик к нормальной форме Хомского. Лемма накачки для кс-языков. Примеры языков, не являющихся контекстно-свободными. Замкнутость кс-языков относительно подстановки, объединения, пересечения, гомоморфизма. Замкнутость кс-языков относительно пересечения с регулярными языками.

  8. Проблема неоднозначности для языков и грамматик. Определения. Формальные ряды. Примеры однозначных грамматик и языков. Примеры неоднозначной грамматики и неоднозначного языка с доказательствами.

  9. Языки и грамматики в целом. Линейные грамматики. Рекурсивно перечислимые языки и грамматики. Алгоритмически разрешимые проблемы автоматов и формальных грамматик. Алгоритм проверки пустоты КС-языков. Алгоритм Кока-Янгера-Касами проверки принадлежности слова кс-языку. LL(k),LR(k) грамматики.

  10. Алгоритмически неразрешимые проблемы автоматов и формальных грамматик. Неразрешимость проблемы минимизации для магазинного автомата. Эквивалентность автомата с двумя магазинами машине Тьюринга. Алгоритмическая неразрешимость проблемы однозначности.

  11. Примеры применений. Синтаксические анализаторы. Генераторы синтаксических анализаторов. Прикладные алгоритмы синтаксического анализа. Применения к комбинаторным проблемам.



ЛИТЕРАТУРА НА РУССКОМ ЯЗЫКЕ





  1. Ахо А., Сети Р., Ульман Дж. Д. Компиляторы: принципы, технологии и инструменты. М.: Вильямс, 2001.

  2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т. 1: Синтаксический анализ. М.: Мир, 1978.

  3. Братчиков И. Л. Синтаксис языков программирования. М.: Мир, 1975.

  4. Гинзбург С. Математическая теория контекстно-свободных языков. М.: Мир, 1970.

  5. Гладкий А. В. Формальные грамматики и языки. М.: Наука, 1973.

  6. Гросс М., Лантен А. Теория формальных грамматик. М.: Мир, 1971.

  7. Мальцев А.И. Теория алгоритмов и рекурсивные функции. изд. Второе. М. Наука, 1986.

  8. Рейуорд-Смит В. Дж. Теория формальных языков. Вводный курс. М.: Радио и связь, 1988.

  9. Саломаа А. Жемчужины теории формальных языков. М.: Мир, 1986.

  10. Хопкрофт Дж. Э., Мотвани Р., Ульман Дж. Д. Введение в теорию автоматов, языков и вычислений, 2-е изд. М.: Вильямс, 2002.

ЛИТЕРАТУРА НА АНГЛИЙСКОМ ЯЗЫКЕ


  1. H.R. Lewis, C.H. Papadimitriou Elements of the Theory of Computation, 2nd Edition, 1997.

  2. Различные курсы, имеющиеся в Интернете.