МИНОБРНАУКИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ФАКУЛЬТЕТ ИНФОРМАТИКИ УТВЕРЖДАЮ Декан факультета С.П. Сущенко « » ТЕОРИЯ АВТОМАТОВ И ФОРМАЛЬНЫХ ЯЗЫКОВ (ЕН.В.01) РАБОЧАЯ ПРОГРАММА трудоемкость дисциплины 3 зачетные единицы НАПРАВЛЕНИЕ 080800 – ПРИКЛАДНАЯ ИНФОРМАТИКА Томск 2010 2010 г. УТВЕРЖДЕНО СОСТАВИТЕЛЬ кафедрой теоретических основ д.т.н., зав. кафедрой теоретических основ информатики. информатики Протокол №05/10 от 01.09.2010 г. Зав. кафедрой, профессор Ю.Л. Костюк Ю.Л. Костюк I. Организационно-методический раздел Цель курса – изучение теории формальных языков, автоматов и методов построения трансляторов. Задача учебного курса. Студент должен понимать теорию формальных языков и автоматов, владеть методами построения трансляторов. Требования к уровню освоения дисциплины. Студент должен знать теорию формальных языков и методов разработки трансляторов. Студент должен уметь создавать трансляторы для формальных языков. Дисциплины-предшественники: основы дискретной математики, математическая логика и теория алгоритмов, основы программирования. II. Содержание дисциплины II.1. Лекционный курс 1. Языки и порождающие грамматики Язык, как множество цепочек символов. Порождающая грамматика. Классификация порождающих грамматик по Хомскому. Классификация языков. Задача распознавания принадлежности цепочки языку. Недетерминированная процедура распознавания для грамматики класса 0. 2. Автоматные языки и лексический анализ Автоматные грамматики. Конечный автомат (КА). Недетерминированный КА. Преобразование недетерминированной грамматики в детерминированную. Праволинейные грамматики, их преобразование в автоматные. Регулярные выражения. Семантическая обработка в КА. Таблицы констант, идентификаторов. Преобразование анализируемого текста в лексическом анализаторе. Реализация лексического анализа в виде отдельного прохода и в виде вспомогательной процедуры. 3. Контекстно-свободные грамматики и синтаксический анализ КС-грамматики. Магазинный автомат. Общий недетерминированный алгоритм анализа сверху-вниз. Общий недетерминированный алгоритм анализа снизу-вверх. Недетерминированность и неоднозначность КС-грамматики и языка. Преобразования КС-грамматики. Удаление из грамматики недостижимых и бесполезных символов. Форма Грейбах. Операторная форма. 4. Синтаксический анализ сверху-вниз Детерминированный анализ сверху-вниз. Рекурсивный спуск. Преобразование грамматики для рекурсивного спуска. Обобщенная нормальная форма Грейбах. LLграмматики. Построение и функционирование LL(1)-анализатора. 5. Синтаксический анализ снизу-вверх Детерминированный анализ снизу-вверх. Грамматики простого предшествования (ПП). Построение отношений ПП. Нестрогое предшествование. Языки простого предшествования. Грамматики операторного предшествования (ОП). Построение отношений ОП. Расширенное предшествование и его применение на практике. LRграмматики. Построение и функционирование LR(1)-анализатора. 6. Обратная польская строка как внутренний язык Обратная польская строка (ОПС) для арифметических выражений. Интерпретатор ОПС. ОПС для условных и циклических конструкций. ОПС для процедур и функций. Стековое распределение памяти при вызове процедур и функций. ОПС для индексации массивов. Распределение памяти для массивов. Генерация ОПС при синтаксическом анализе сверху-вниз и снизу-вверх. II.2. Лабораторные работы Предусмотрена одна комплексная работа, выполняемая самостоятельно. Целью работы является реализация интерпретатора с простого языка программирования. Реализуемый язык должен содержать скалярные переменные и константы двух типов (один из них целый), одномерные массивы, а также следующие виды операторов: присваивания и формулы, условные операторы, циклы с условием, вложенные конструкции, описания и вызовы процедур. III. Распределение часов курса по темам и видам работ №№ пп Наименование тем Всего Аудиторные занятия (час), часов в том числе лекции 1 2 3 4 5 6 Языки и порождающие грамматики Автоматные языки и лексический анализ Контекстно-свободные грамматики и синтаксический анализ Синтаксический анализ сверху-вниз Синтаксический анализ снизувверх Обратная польская строка как внутренний язык Лабораторные работы ИТОГО семина ры Самостоятель ная работа лаборатор ные занятия 16 4 12 26 6 20 14 4 10 18 4 14 26 8 18 32 10 22 18 150 36 18 18 96 IV. Учебно-методическое обеспечение курса IV.1. Основная литература 1. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т.1-2. – М.: Мир, 1978. 2. Грис Д. Конструирование компиляторов для цифровых вычислительных машин. – М.: Мир, 1975. 3. Ершов А.П. Теоретическое программирование. – М.: Наука, 1977.