МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Саратовский государственный университет имени Н.Г. Чернышевского Факультет компьютерных наук и информационных технологий УТВЕРЖДАЮ ___________________________ "__" __________________20__ г. Рабочая программа дисциплины ТЕОРИЯ АВТОМАТОВ И ФОРМАЛЬНЫХ ЯЗЫКОВ Направление подготовки 010300 Фундаментальная информатика и информационные технологии Профиль подготовки Информатика и компьютерные науки Квалификация (степень) выпускника Бакалавр Форма обучения очная Саратов, 2011 год 1. Цели освоения дисциплины Целью освоения данного курса является ввести в круг понятий и задач, связанных с использованием искусственных языков, изучение теоретических и методологических основ методов определения формальных. Вместе с другими дисциплинами изучение материалов курса должно способствовать становлению профессионального уровня подготовки бакалавра по направлению Фундаментальная информатика и информационные технологии. 2. Место дисциплины в структуре ООП бакалавриата Данная учебная дисциплина входит в раздел «Математический и естественнонаучный цикл. Базовая часть» ФГОС-3. Для изучения дисциплины необходимы компетенции, сформированные у обучающихся в результате изучения курсов «Теоретическая информатика», «Логика и теория алгоритмов», «Дискретная математика». Сформированные в процессе изучения дисциплины «Теория автоматов и формальных языков» компетенции необходимы студенту при изучении дисциплин «Прикладная универсальная алгебра», «Интеллектуальные системы». 3. Компетенции обучающегося, формируемые в результате освоения дисциплины Данная дисциплина способствует формированию следующих компетенций: - способность понимать и применять в исследовательской и прикладной деятельности современный математический аппарат, фундаментальные концепции и системные методологии, международные и профессиональные стандарты в области информационных технологий, способность использовать современные инструментальные и вычислительные средства (в соответствии с профилем подготовки) (ПК-4); - способность профессионально владеть базовыми математическими знаниями и информационными технологиями, эффективно применять их для решения научно-технических задач и прикладных задач, связанных с развитием и использованием информационных технологий (ПК-8); - понимание концепций и абстракций, способность использовать на практике базовые математические дисциплины, включая: Математический анализ I; Математический анализ II; Кратные интегралы и ряды; Алгебра и геометрия; Теория функций комплексной переменной; Функциональный анализ; Математическая логика и теория алгоритмов; Теория автоматов и формальных языков; Дифференциальные и разностные уравнения; Теория вероятностей и математическая статистика; Вычислительные методы (ПК-15); - способность решать задачи производственной и технологической деятельности на высоком профессиональном уровне, включая: разработку алгоритмических и программных решений в области системного и прикладного программирования; разработку математических, информационных и имитационных моделей по тематике выполняемых опытно-конструкторских работ и проектов; создание информационных ресурсов глобальных сетей, образовательного контента, прикладных баз данных; разработку тестов и средств тестирования систем и средств на соответствие стандартам и исходным требованиям; разработку эргономичных человеко-машинных интерфейсов в соответствии с профилизацией (ПК-28); В результате освоения дисциплины обучающийся должен: Знать: - понятия формального языка и метаязыка, способы описания формальных языков; - классификацию языков и грамматик; - базовые понятия теории грамматик, теории конечных автоматов и автоматов с магазинной памятью; - основные математические методы преобразования грамматик; Уметь: - ориентироваться в задачах касающихся формализации языков; - выбирать способ задания языка в зависимости от решаемой задачи; - находить эквивалентные способы представления языков в целях применения соответствующих алгоритмов; - решать типовые задачи преобразования грамматик; Владеть: - навыками применения языков и методов формальных спецификаций,; - базовыми математическими знаниями и информационными технологиями; - навыками моделирования, анализа и использования формальных методов конструирования программного обеспечения. 4. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 4 зачетные единицы, 144 часа. № п/ п Раздел дисциплины 1 Основные понятия Регулярные множества и регулярные выражения Конечные автоматы и регулярные языки КС грамматики 2 3 4 5 Семе стр Недел я семест ра 4 1-2 Л:4 СР:4 ПР:4 4 3-6 Л:8 СР:12 ПР:8 4 7-10 Л:8 СР:12 ПР:8 Контрольная на 10 неделе 4 11-12 Л:4 СР:8 ПР:6 13-16 Л:8 СР:8 ПР:6 32 44 32 Контрольная на 16 неделе Контрольная на 16 неделе Экзамен 36 МП автоматы и 4 КС грамматики Промежуточная аттестация ИТОГО Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах) Формы текущего контроля успеваемости (по неделям семестра) Формы промежуточной аттестации (по семестрам) Контрольная на 10 неделе Контрольная на 10 неделе Раздел «Основные понятия». Множества, бинарные отношения, операции над отношениями. Понятие языка, операции над языками. Способы задания языка (порождение и распознавание). Понятия распознавателя и грамматики. Отношение непосредственной выводимости цепочек, его транзитивное и рефлексивно- транзитивное замыкание. Классификация грамматик и языков. Раздел «Регулярные множества и регулярные выражения». Понятия регулярного множества и регулярного выражения. Тождества для регулярных выражений. Решение системы уравнений с регулярными коэффициентами. Лемма о том, что объединение, конкатенация и итерация праволинейных языков есть праволинейный язык. Теорема: язык является регулярным множеством тогда и только тогда, когда он праволинейный. Раздел «Конечные автоматы и регулярные языки». Понятие конечного автомата, конфигурации конечного автомата, такта работы. Построение по праволинейной грамматике конечного автомата и наоборот. Лемма: объединение, конкатенация и итерация автоматных языков есть автоматный язык. Получение регулярного выражения для языка, допускаемого конечным автоматом (метод исключения состояний автомата). Лемма о накачке для регулярных языков. Доказательство нерегулярности языков. Критерий пустоты и бесконечности языка, допускаемого конечным автоматом. Алгоритмически разрешимые проблемы для регулярных языков. Минимизация конечного автомата. Раздел «КС грамматики». КС грамматики. Деревья вывода. Однозначные и неоднозначные грамматики. Алгоритмы удаления - правил, цепных правил, недостижимых и бесплодных символов. Лемма об удалении правила. Нормальные формы КС грамматик. Алгоритмы преобразования к нормальной форме Хомского и Грейбах. Удаление левой рекурсии. Раздел «МП- автоматы и КС- грамматики». МП автоматы, конфигурации МП автоматов. Расширенный МП автомат. Детерминированный МП автомат. Построение МП автомата по расширенному МП автомату. Языки, допускаемые при опустошении магазина и при конечном состоянии. Построение МП автомата по МП автомату. Построение МП автомата по МП автомату. Теорема: язык является контекстно-свободным тогда и только тогда, когда он допускается МП автоматом. Построение МП автомата по КС грамматике. Построение расширенного МП автомата по КС грамматике. Построение КС грамматики по МП автомату. Лемма о накачке для КС языков. 5. Образовательные технологии В учебном процессе при реализации компетентностного подхода используются такие активные и интерактивные формы проведения занятий как модельный метод обучения, метод развивающей кооперации, разбор конкретных ситуаций, командное выполнение заданий с распределением ролей, тестирование. Широко используются мультимедийные презентации при представлении лекционного материала. 6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины. 7. Учебно-методическое и информационное обеспечение дисциплины а) основная литература: 1. Пентус А. Е., Пентус М. Р. Математическая теория формальных языков: учеб. пособие,. - М.: Интернет-Ун-т Информ. Технологий: БИНОМ. Лаб. знаний, 2006 2. Соколов А. П. Системы программирования: теория, методы, алгоритмы. М.: Финансы и статистика, 2004. б) дополнительная литература: 1. Опалева Э. А., Самойленко В. П. Языки программирования и методы трансляции: учеб. пособие. - СПб.: БХВ-Петербург, 2005. 2. Теория и реализация языков программирования: учеб. пособие по курсу теории и реализации языков программирования / В. А. Серебряков и др. - М. : МЗ-Пресс, 2003 3. Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы. М.: Изд. дом «Вильямс», 2007. 4. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. В 2-х томах. М.: Мир, 1978. 5. Рейуорд-Смит В. Дж. Теория формальных языков. М.: Радио и связь, 1988. в) программное обеспечение и Интернет-ресурсы: не требуется 8. Материально-техническое обеспечение дисциплины Лекционная аудитория с возможностью демонстрации электронных презентаций при уровне освещения, достаточном для работы с конспектом. Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и ПООП ВПО по направлению и профилю подготовки Информатика и компьютерные науки. Автор доцент кафедры математической кибернетики и компьютерных наук ___________ С. В. Миронов Программа одобрена на заседании кафедры математической кибернетики и компьютерных наук от «___» ________ 2011 года, протокол № ___. Заведующий кафедрой математической кибернетики и компьютерных наук ___________ А. С. Иванов Декан факультета КНиИТ, доцент ___________ А. Г. Федорова