СТО АлтГТУ 15.62.1.1067 - 2012 СТАНДАРТ ОРГАНИЗАЦИИ Система качества АлтГТУ

advertisement
СТО АлтГТУ 15.62.1.1067 - 2012
СТАНДАРТ ОРГАНИЗАЦИИ
Система качества АлтГТУ
Образовательный стандарт
высшего профессионального образования АлтГТУ
ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ
УЧЕБНОЙ ДИСЦИПЛИНЫ
Б.2.Б.5 «Теория автоматов и формальных языков»
231000 Программная инженерия
ФГБОУ ВПО Алтайский государственный технический университет
им. И.И. Ползунова
1
СТО АлтГТУ 15.62.1.1067 - 2012
Предисловие
1) РАЗРАБОТАН кафедрой прикладной математикиАлтайского государственного
технического университета им. И. И. Ползунова.
2) Стандарт дисциплины разработан на основании ФГОС ВПО направления подготовки 231000 Программная инженерия (квалификация (степень) "бакалавр"), утвержденного
09 ноября 2009 г. (регистрационный номер 542).
3) Стандарт дисциплины «Теория автоматов и формальных языков» по своему назначению, структуре и содержанию полностью соответствует требованиям УМКД.
4) ВВЕДЕН ВПЕРВЫЕ
II
СТО АлтГТУ 15.62.1.1067 - 2012
Оглавление
1 Область применения
1
1.2 Действие стандарта распространяется:
1
2 Общие сведения о дисциплине. Паспорт дисциплины
1
2.1 Выписка из рабочего учебного плана ООП
1
2.2 Цели и задачи освоения дисциплины
2
2.3 Место дисциплины в структуре ООП направления
2
2.4 Требования к результатам освоения дисциплины
3
2.5 Объем и виды занятий по дисциплине
4
3 Рабочая программа дисциплины
5
3.1.2 Учебно-методическое и информационное обеспечение дисциплины
9
3.1.3 Формы и содержание текущей аттестации и промежуточной оценки по
дисциплине
10
3.1.4 Учебно – методические материалы по дисциплине
11
3.2 Условия освоения и реализации дисциплины
12
3.2.1 Методические рекомендации студентам по изучению дисциплины
12
3.2.2 Организация самостоятельной работы студента (СРС) по дисциплине;
12
3.2.3 Методические рекомендации преподавателю дисциплины;
12
3.2.4 Образовательные технологии
13
3.2.5 Особенности преподавания дисциплины
13
3.2.6 Материально-техническое обеспечение дисциплины
13
3.3 Лист согласования рабочей программы
14
ПРИЛОЖЕНИЕ А Методические указания по выполнению лабораторных работ по
дисциплине "Теория автоматов и формальных языков"
15
ПРИЛОЖЕНИЕ Б Методические указания по выполнению расчетного задания по
дисциплине "Теория автоматов и формальных языков "
29
ПРИЛОЖЕНИЕ В Тесты текущего контроля знаний по дисциплине
Bookmark not defined.
Error!
ПРИЛОЖЕНИЕ Г Тесты промежуточного контроля знаний по дисциплине Error!
Bookmark not defined.
ПРИЛОЖЕНИЕ Д Памятка для студентов по изучению дисциплины
Bookmark not defined.
III
Error!
СТО АлтГТУ 15.62.1.1067-2012
Стандарт организации
___________________________________________________________________
Система качества АлтГТУ
Образовательный стандарт высшего
профессионального образования АлтГТУ
ОБРАЗОВАТЕЛЬНЫЙ СТАНДАРТ
Введён впервые
УЧЕБНОЙ ДИСЦИПЛИНЫ
ТЕОРИЯ АВТОМАТОВ И ФОРМАЛЬНЫХ ЯЗЫКОВ
___________________________________________________________________
УТВЕРЖДАЮ
Начальник УМУ АлтГТУ
_________________ Н.П. Щербаков
(подпись)
Ф.И.О.
"____" _______________ 2012 г.
(число, месяц)
1 Область применения
1.1 Стандарт дисциплины устанавливает общие требования к содержанию, структуре,
объему дисциплины «Теория автоматов и формальных языков» и условиям ее реализации в
АлтГТУ им И.И. Ползунова.
1.2 Действие стандарта распространяется:
 на студентов, обучающихся по специальности 231000 «Программная инженерия»;
 на преподавателей и сотрудников структурных подразделений, задействованных в
образовательном процессе по дисциплине.
2 Общие сведения о дисциплине. Паспорт дисциплины
2.1 Выписка из рабочего учебного плана ООП
Математический и естественнонаучный цикл.
Базовая дисциплина
№ п/п 5
Зачет – 6 семестр
Расчетное задание – 6 семестр
Трудоемкость – 3 зачетных единицы
Всего часов – 108
Из них без СРС в период сессий – 108 часов
Аудиторные – 51 час
из них
лекции – 34 часа (из них в интерактивной форме 4 часа)
1
СТО АлтГТУ 15.62.1.1067 – 2012
лабораторные работы – 17 часов
СРС - 57 часов
в семестре – 57 часов
в период сессии – 0 часов
Кафедра ПМ
Компетенции: ОК-1,2,10; ПК- 1
2.2 Цели и задачи освоения дисциплины
Целью дисциплины является усвоение теоретических основ и методов формальных
языков, грамматик и конечных автоматов, получение практических навыков синтеза грамматик и автоматов с целью овладения компетенциями по квалифицированному конструированию системного и прикладного программного обеспечения, связанного с анализом инструкций на входном языке, и по использованию языков формальных спецификаций.
Достижение цели предполагает выполнение следующих задач:
- освоение базовых понятий теории формальных языков и автоматов, таких как грамматика, грамматический разбор, абстрактный автомат, распознавание и порождение цепочек;
- изучение и практическое освоение методов теории формальных языков и автоматов;
- изучение и практическое освоение принципов синтеза и преобразования грамматик,
абстрактных и структурных автоматов различных типов.
2.3 Место дисциплины в структуре ООП направления
Дисциплина «Теория автоматов и формальных языков» является дисциплиной базовой части математического и естественнонаучного цикла (Б2) образовательной программы
бакалавра.
Опорой для изучения настоящей дисциплины являются дисциплины (пререквизиты)
«Теоретические основы информатики» (1 семестр), «Дискретная математика» (2 семестр),
«Математическая логика и теория алгоритмов» (5 семестр).
Результаты освоения дисциплины являются входными параметрами (опорой) для изучения курсов (корреквизитов) «Методы анализа в теории формальных языков» (7 семестр),
«Автоматное программирование» (7 семестр), «Теория языков программирования и методы
трансляции» (8 семестр).
2
СТО АлтГТУ 15.62.1.1067 – 2012
2.4 Требования к результатам освоения дисциплины
В результате изучения дисциплины студенты должны обладать знаниями, умениями и
навыками, приведенными в таблице 2.1.
Таблица 2.1.
Код
В результате изучения дисциплины
компеобучающиеся должны:
Содержание комтенции
петенции (или ее
по ФГОС
части)
знать
уметь
владеть
ВПО или
ООП
- анализироВладение культувать проблему - способностью к
рой мышления,
генерации и
обобщению, аналиспособность к
- основные поанализа цепозу и восприятию
обобщению, анали- нятия теории
чек языка и
информации;
ОК-1
зу, восприятию ин- формальных
подбирать со-навыками выбора
формации, постаязыков и автоответствуюпутей решения зановке целей и выматов
щую граммадач синтеза грамбору путей их ретику или моматики и автомата;
шения
дель автомата
- логически
- логическую обосновывать
Умение логически взаимосвязь
применяемые
- аксиоматикой
верно, аргументиосновных по- методы для
теории формальОК-2
рованно и ясно
нятий теории решения задач
ных языков и автостроить устную и
формальных
по синтезу,
матов
письменную речь
языков и авто- преобразоваматов
нию грамматик
и автоматов
Готовность использовать основные законы естественнонаучных
дисциплин в про- методы дока- применять
фессиональной де- зательства тео- методы мате- - способностью к
ятельности, приме- рем теории
матической
моделированию
ОК - 10
нять методы матеформальных
индукции для обработки цепочек
матического анали- языков и авто- доказательства языка автоматами
за и моделироваматов;
теорем;
ния, теоретического и экспериментального исследования
- классифика- строить и - основными метоПонимание основцию граммапреобразовыдами синтеза и
ных концепций,
тик,
вать граммати- преобразования
принципов, теорий
ПК-1
- методы синки различных грамматик;
и фактов, связантеза и преобра- типов по за- - основными метоных с информатизования грамданному фор- дами синтеза и
кой
матик;
мальному язы- преобразования
3
СТО АлтГТУ 15.62.1.1067 – 2012
- методы грамматического
разбора;
- типы автоматов и способы
их задания;
- методы абстрактного
синтеза и преобразования
конечных автоматов;
- основные понятия
структурной теории
автоматов
ку;
- синтезировать
и преобразовывать автоматыраспознаватели
и
автоматы
преобразователи;
- уметь синтезировать по заданному
абстрактному автомату структурный автомат
абстрактных автоматов различных
типов;
- методикой построения структурных автоматов
2.5 Объем и виды занятий по дисциплине
Паспорт дисциплины
Кафедра прикладной математики_____________________________________________
наименование кафедры, обеспечивающей преподавание дисциплины
Дисциплина
Б.2.Б.5 «Теория автоматов и формальных языков»__________________
шифр с указанием цикла подготовки, наименование дисциплины
Статус дисциплины___________базовая _______________________________________
(базовая, вариативная, вариативная по выбору, факультативная)
Направление
231000 Программная инженерия (квалификация (степень) "бакалавр")_
коды специальностей или направлений
Форма обучения_________________очная________________________________
очная, очно-заочная (вечерняя), заочная
6
Распределение по видам занятий
Учебные занятия
Наличие курсовых проекВ том числе
тов (КП), курАудиторные
СРС
совых работ
из них
(КР), расчетВсего леклаборапрактиных заданий
ции
торные
ческие
(РЗ)
работы
занятия
108 51
34
17
57
РЗ
Общий объём
Номер семестра
Объем дисциплины_____________108 часов_______________________________
общий объем дисциплины, час.
Трудоемкость дисциплины 3 зачетных единицы
Форма
промежуточной аттестации
(зачёт, экз.)
зачет
4
СТО АлтГТУ 15.62.1.1067 – 2012
3 Рабочая программа дисциплины
3.1 Содержание дисциплины
3.1.1 Тематический план дисциплины
Лекции (34 час.; [1-9])
Модуль 1.
1. Основные понятия теории формальных языков и автоматов. Концепция порождения и распознавания (2 часа; [2,3]).
Алфавит. Формальные языки. Операции над языками. Порождающая грамматика. Понятие вывода. Классификация грамматик по Хомскому. Автоматные языки. Замкнутость
класса автоматных языков. Лемма о разрастании для автоматных языков. Порождение цепочек автоматного языка. Синтез автоматной грамматики по заданному формальному языку.
2. Синтез автоматов-распознавателей (4 часа; [1,4]).
Конечные автоматы как распознающее описание автоматного языка. Способы задания
автоматов. Синтез конечных автоматов. Операции над конечными автоматами. Алгоритмы
построения объединения, произведения, итерации, усеченной итерации, конечных автоматов.
3. Преобразования автоматов-распознавателей (6 часов; [1,4]).
Детерминированные конечные автоматы. Преобразование автомата к детерминированной форме. Минимизация автомата. Синтез автомата для распознавания дополнения,
пересечения автоматных языков. Регулярные выражения и их свойства. Регулярный язык.
Теорема Клини. Связь между регулярными языками и конечными автоматами.
Модуль 2.
4. Контекстно-свободные языки и их порождение. (4 часа; [2,3]).
Основные свойства контекстно-свободных языков. Лемма о разрастании. Лемма
Огдена. Алгебраическая замкнутость класса КС-языков. Пересечение и дополнение КСязыков. Пересечение КС-языка с автоматным языком.
5. Преобразование КС-грамматик. (6 часов; [2,3]).
Нормальные формы КС-языков. Деревья вывода. Однозначные КС-грамматики.
Приведение КС-грамматики к нормальной форме. Удаление бесполезных нетерминалов.
Удаление эпсилон-правил.
6. Распознавание КС-языков (4 часа; [2,3,4]).
Автоматы с магазинной памятью. Детерминированные автоматы с магазинной памятью. Применение МП-автомата для распознавания КС-языков. Алгоритмически неразрешимые проблемы в теории формальных языков.
Модуль 3.
7. Автоматы-преобразователи. (4 часа; [1,4,5,6]).
Автоматы Мили и Мура, их синтез. Эквивалентность автоматов Мили и Мура. Метод Ауфенкампа и Хона. Тестирование абстрактных автоматов.
8. Синтез структурных автоматов. (4 часа; [4,5,6,7,8,9]).
Понятие структурного синтеза. Теорема о структурной полноте. Общая схема структурного автомата. Типы элементарных автоматов памяти. Канонический метод структурного синтеза автомата.
5
СТО АлтГТУ 15.62.1.1067 – 2012
Лабораторные работы (17 час.; [1-11])
Лабораторная работа № 1. Синтез автоматной грамматики по заданному формальному языку. Синтез конечного автомата-распознавателя по заданному регулярному языку.
(2 часа; [1-6,10,11]).
Лабораторная работа № 2. Детерминизация и минимизация конечного автоматараспознавателя. (2 часа; [1,4,10,11])
Лабораторная работа № 3. Построение праволинейной и леволинейной грамматик,
порождающих язык, распознаваемый заданным автоматом. (2 часа; [1,4,10,11])
Лабораторная работа № 4. Построение КС-грамматики по заданному формальному языку. (2 часа; [2,3])
Лабораторная работа № 5. Выполнение преобразований грамматики, построенной
по заданному формальному языку. (4 часа; [2,3])
Лабораторная работа № 6. Построение МП-автомата, выполняющего грамматический разбор для заданной КС-грамматики. (2 часа; [1,4,10,11])
Лабораторная работа № 7. Синтез и преобразование абстрактных автоматов Мили
и Мура. (3 часа; [4,6,10,11])
Расчетное задание (21 час; [1,2,4,6])
Выполнение расчетного задания включает синтез КС-грамматики для заданной конструкции некоторого языка программирования, а также синтез абстрактного конечного автомата-преобразователя Мили по неформальной задаче.
Пример задания:
1. Оператор Switch языка С. Выражение считать константой или именем переменной.
2. Построить модель автомата, управляющего продажей кофе различных видов. Имеет
кнопки для выбора вида кофе, для выполнения заказа, для сброса заказа и возврата денег.
Принимает монеты номиналом 1, 2, 5, 10 рублей.
Самостоятельная работа студентов (57 час.)
Целью самостоятельной работы студентов является закрепление знаний по изучаемым разделам дисциплины «Теория автоматов и формальных языков». Координация самостоятельной учебной деятельности осуществляется преподавателем во время проведения
занятий и на консультациях. Текущий контроль освоения материала проводится в процессе
приема лабораторных работ.
Для самостоятельной работы используется учебное пособие [1], а также дополнительная литература. Самостоятельная учебная работа студентов предполагает подготовку к
лабораторным занятиям и контрольным опросам. Для организации СРС используются регламентирующие и учебно-методические документы:
 график проведения и защиты лабораторных работ;
 формы отчетности;
 учебная программа дисциплины;
 учебные материалы;
 методические указания по выполнению лабораторного практикума;
 список рекомендуемой литературы.
6
СТО АлтГТУ 15.62.1.1067 – 2012
СРС включает в себя:
 Подготовка к лабораторным работам (по 2 часа на одну лабораторную работу - 14 часов;
[2]);
 Подготовка к контрольным опросам по модулям 1-3 (4 часа х 3=12 часов; [1,2])
 Выполнение расчетного задания (21 час, [1,2,4,6]).
Элементы творчества являются обязательными при выполнении лабораторных работ по дисциплине. Студенты должны, опираясь на общую методику синтеза, преобразования грамматик и автоматов, выполнить лабораторные работы по индивидуальному варианту.
Индивидуальные задания предусматривают получение студентами навыков самостоятельной учебной деятельности в рамках требуемой тематики заданий.
Регулярные консультации (не реже 1 раза в неделю) и контроль за своевременной
защитой лабораторных работ являются обязательным элементом организации учебного
процесса по дисциплине в рамках СРС.
Вся необходимая для самостоятельной работы информация содержится в книгах [1-9].
Таблица 3.1 - Наименование компетенций дисциплины
Код компетенции
Формулировка компетенции
ОК-1
Владение культурой мышления, способность к обобщению,
анализу, восприятию информации, постановке целей и выбору
путей их решения
ОК-2
Умение логически верно, аргументированно и ясно строить
устную и письменную речь
ОК-10
Готовность использовать основные законы естественнонаучных дисциплин в профессиональной деятельности, применять
методы математического анализа и моделирования, теоретического и экспериментального исследования
ПК-1
Понимание основных концепций, принципов, теорий и фактов, связанных с информатикой
Таблица 3.2 - Компонентный состав дисциплины
Модуль
Результаты освоения
Технологии
дисциплидисциплины
формирования
ны (раздел,
компетенций
тема)
Модуль 1
Лекции с исЗнает:
- понятие формального языка; пользованием
- понятие порождающей
мультимедийграмматики;
ных средств.
- типы грамматик;
Лабораторные
- операции над формальными
работы №1, 2,3
автоматными языками;
Самостоятель- методы синтеза порождаюная работа
щих грамматик для автоматных языков;
- типы автоматов и способы
их задания;
- методы синтеза и преобразования конечных автоматовраспознавателей
Средства и
Объем
технологии оценки в ЗЕТ
Защита отчета по
лабораторной работе
Контрольный
опрос
1
7
СТО АлтГТУ 15.62.1.1067 – 2012
Модуль 2
Модуль 3
Умеет:
- строить автоматыраспознаватели;
- выполнять детерминизацию
и минимизацию автоматовраспознавателей
Лабораторные
работы 1, 2, 3
Самостоятельная работа
Владеет:
- способностью к синтезу автоматных грамматик;
- способностью к моделированию обработки информации
автоматамираспознавателями;
Знает:
- операции над КС-языками;
- методы синтеза КСграмматик;
- методы эквивалентного преобразования КС-грамматик;
- понятие грамматического
разбора;
- стратегии грамматического
разбора;
- понятие МП-автомата;
- алгоритмы грамматического
разбора с применением МПавтоматов;
Умеет:
- - выполнять синтез КСграмматик для заданных формальных языков;
- осуществлять эквивалентные
преобразования КС- грамматик;
-синтезировать МП-автоматы;
Владеет:
-методами синтеза и преобразования КС-грамматик;
- методами синтеза МПавтоматов;
- навыками оформления и
представления результатов
решения задачи
Знает:
- определение и типы автоматов -преобразователей;
- методы синтеза и преобразования автоматов Мили и Мура
- понятие структурного автомата;
Выполнение
лабораторной
работы 1, 2, 3
Демонстрация
преподавателю
функционирования
разработанного
автомата в тестирующей среде
Контрольный
опрос
Защита лабораторной работы
Контрольный
опрос
Лекции с использованием
мультимедийных средств.
Лабораторные
работы №4,5,6
Самостоятельная работа
Выполнение ра
четного задания
Защита лабораторных работ
Контрольный
опрос
Защита расчетного
задания
Лабораторные
работы 4, 5, 6
Выполнение
расчетного задания
Самостоятельная работа
Защита лабораторной работы
Контрольный
опрос
Защита расчетного
задания
Выполнение
лабораторной
работы 4, 5, 6
Выполнение
расчетного задания
Защита лабораторной работы
Контрольный
опрос
Лекции
Самостоятельная работа
Защита лабораторной работы
Контрольный
опрос
1
1
8
СТО АлтГТУ 15.62.1.1067 – 2012
Лабораторная
работа 7
Выполнение
расчетного задания
Самостоятельная работа
Защита лабоВладеет:
-основными методами синтеза раторной рабои преобразования абстрактных ты 7
автоматов Мили и Мура;
Выполнение
- навыками оформления и
расчетного запредставления результатов
дания
решения задачи
Самостоятельная работа
Умеет:
- синтезировать и преобразовывать автоматы Мили и Мура;
Защита отчета по
лабораторной работе
Защита расчетного
задания
Защита лабораторной работы
Защита расчетного
задания
Матрица распределения компетенций по разделам и темам дисциплины
№темы/раздела Кол-во
учебной
часов
дисциплины
Модуль 1
12
Модуль 2
14
Модуль 3
8
Формируемые
компетенции
ОК-1, ОК-2, ОК-10, ПК-1
ОК-1, ОК-2, ОК-10, ПК-1
ОК-1, ОК-2, ОК-10, ПК-1
Примечание
-
3.1.2 Учебно-методическое и информационное обеспечение дисциплины
а) основная литература:
1. Горбатов В.А., Горбатов А.В., Горбатова М.В. Теория автоматов. Учебник для
студентов втузов. – Изд-во АСТ, Астрель, 2008. – 560 с. – 13 экз.
2. Пентус А.Е., Пентус М.Р. Математическая теория формальных языков. Учебное
пособие [Текст]/А.Е.Пентус, М.Р. Пентус. – БИНОМ, 2006. – 247 с. – 13 экз.
3. Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и
вычислений. – М.: Изд-во Вильямс, 2007. – 528 с. - 5 экз.
4. Сучкова Л.И. Абстрактный и структурный синтез автоматов. Учебное пособие. Барнаул, АлтГТУ, 2009. – 162 с. – 25 экз.
б) дополнительная литература:
5. Нарышкин Александр Кириллович. Цифровые устройства и микропроцессоры:
[учеб. пособие для вузов радиотехн. специальностей] /А. К. Нарышкин .-М.: Академия,
2006.-317 с. – 4 экз.
6. Карпов Ю. Г. Теория автоматов: учеб. для вузов по направлению подготовки бакалавров "Информатика и вычисл. техника" и по специальности "Вычисл. машины, комплексы, системы и сети" направления подготовки дипломир. специалистов "Информатика и
вычисл. техника" /Ю. Г. Карпов.-СПб.: Питер, 2002. - 206 с.: ил..-( Учебник для вузов ). – 11
экз.
9
СТО АлтГТУ 15.62.1.1067 – 2012
в) программное обеспечение и Интернет-ресурсы:
7. http://window.edu.ru/window_catalog/files/r44618/2000-0049-0-01.pdf
8. http://window.edu.ru/window_catalog/files/r44618/2000-0049-0-02.pdf
9. http://window.edu.ru/window_catalog/files/r18659/Posob3.pdf
10. Обучающая программа automat.exe.
Для проведения лабораторных работ требуются технические средства, включающие
персональные компьютеры, объединенные в локальную вычислительную сеть. Состав программного обеспечения:
1.
Операционная система Windows XP.
2.
Программа automat.exe.
г) методические указания студентам:
11. Сучкова, Л.И. Лабораторный практикум по дисциплине «Теория автоматов и формальных языков» / Алт. гос. техн. ун-т им. И.И. Ползунова. – Барнаул: АлтГТУ,
2012.- Режим доступа http://elib.altstu.ru/
Методические указания к выполнению лабораторных работ изложены в Приложении A
настоящего стандарта.
3.1.3 Формы и содержание текущей аттестации и промежуточной оценки по
дисциплине
Форма промежуточной аттестации: 6 семестр – зачет.
Содержание текущей и промежуточной аттестации раскрывается в комплекте контролирующих материалов, предназначенных для проверки соответствия уровня подготовки по
дисциплине требованиям ФГОС ВПО и СТО.
Контролирующие материалы по дисциплине содержат:
-тесты промежуточного контроля знаний по дисциплине;
-тесты контроля текущих знаний по дисциплине.
Содержание текущей аттестации раскрывается в процессе защиты лабораторных работ.
Комплект контролирующих материалов приведен в приложениях В и Г настоящего
стандарта.
Оценка индивидуальной деятельности студентов по дисциплине, расчет рейтингов студентов в ходе текущей и итоговой аттестаций осуществляется на основе модульно- рейтинговой системы. Более подробно порядок вычисления рейтинга приведен в приложении Д
для студентов.
10
СТО АлтГТУ 15.62.1.1067 – 2012
3.1.4 Учебно – методические материалы по дисциплине
Учебно-методическая карта дисциплины «Теория автоматов и формальных языков» для
специальности 231000 «Программная инженерия» на шестой семестр
Наименование вида работ
График аудиторных занятий и СРС 6 семестр
Номер недели
1 2 3
4 5 6 7 8 9 10 11 12 13 14 15 16 17
1 Аудиторные
занятия:
- лекции
1 1 2
2 3 3 4 4 5 5 5 6 6 7 7 8
8
- лабораторные
1
2
3
4
5
5
6
7
7
2 Самостоятельная работа
- Расчетное за2 2 2 2 2 2 2 2 2
3
дание
- подготовка к 1 1 1
1 1 1 1 1
1 1 1 1
1
1
лабораторным
работам
- подготовка к
4
4
4
контрольным
опросам
3 Формы текущей аттестации
ЗР
ЗР
ЗР
ЗР
ЗР
ЗР
ЗР
- Защита лаб.
0,05
0,1
0,1
0,1
0,1
0,1
0,05
работы
КО
КО
КО
-Контрольный
0,1
0,1
0,1
опрос
ЗРЗ
-Другие виды
0,1
аттестации
Зачет самостоятельного веса не имеет, итоговый рейтинг вычисляется по контрольным
точкам семестра
11
СТО АлтГТУ 15.62.1.1067 – 2012
3.2 Условия освоения и реализации дисциплины
3.2.1 Методические рекомендации студентам по изучению дисциплины
Самостоятельная работа студентов (СРС) заключается в изучении теоретического материала в виде лекций и дополнительных источников (как из списка рекомендуемой литературы настоящего стандарта, так и самостоятельно найденных в интернет при одобрении
преподавателем), а также в защите лабораторных и расчетного задания.
Для наилучшего усвоения теоретического материала и получения навыков самостоятельного синтеза и преобразования грамматик и автоматов выполнение лабораторных работ
следует начинать сразу же после прочтения лекции по соответствующей теме, а при подготовке к их защите изучать дополнительный материал по теме работы. При работе над алгоритмом решения задачи необходимо консультироваться с преподавателем.
При выполнении лабораторных работ рекомендуется анализировать поставленные задачи и находить способ их решения. Получение навыков синтеза грамматик и автоматов
позволит развить способности к логическому мышлению, лучше усвоить теоретический
материал.
При подготовке к защите лабораторных работ рекомендуется отвечать на вопросы для
самоконтроля, изучать лекционный материал, относящийся к изучаемой теме.
Памятка студенту по изучению дисциплины «Теория автоматов и формальных языков»
приведена в Приложении Д.
3.2.2 Организация самостоятельной работы студента (СРС) по дисциплине;
Выполнение лабораторных работ и написание расчетного задания выполняется студентом самостоятельно (в компьютерных лабораториях факультета или в домашних условиях).
Компьютерные классы обеспечены необходимыми средствами вычислительной техники, на
которых установлено требующееся программное обеспечение. Список необходимого программного обеспечения и рекомендуемой литературы описан в пункте 3.1.2 настоящего
стандарта.
Предусмотрены регулярные консультации (не реже 1 раза в неделю) консультации по
расчетному заданию и текущим лабораторным работам. Контроль за выполнением лабораторных работ и расчетного задания являются обязательным элементом организации учебного процесса по дисциплине.
Для выполнения лабораторных работ разработан комплект заданий.
3.2.3 Методические рекомендации преподавателю дисциплины;
В начале семестра студентам дается презентация курса устно и письменно (в виде силлабуса). При этом освещается список тем, которые будут рассматриваться во время курса,
решаются организационные вопросы (деление на подгруппы, организация занятий на лабораторных работах, рекомендации по выбору литературы и т. д.).
Лекционный материал рекомендуется представлять в виде пронумерованных и озаглавленных модулей в четком соответствии с рабочей программой. В начале лекции необходимо дать название изучаемой темы, обозначить круг изучаемых вопросов, а затем перейти к
более подробному рассмотрению теоретического и практического материала по синтезу,
преобразованию и тестированию грамматик и автоматов. На примерах следует разобрать
приемы и алгоритмы синтеза и преобразования автоматов и грамматик различных типов,
используя при этом режим непосредственного общения со студентами (диалог, дискуссия,
режим мозгового штурма). Также следует ответить на возникшие в ходе выполнения работы вопросы.
12
СТО АлтГТУ 15.62.1.1067 – 2012
На лекционных занятиях могут проводиться письменные контрольные опросы продолжительностью 10-15 минут по основным изученным темам.
На лабораторных работах студенты должны выполнять индивидуальные задания , сдавать и защищать выполненные работы. Сдача работы включает в себя следующие этапы
(для конкретной работы могут присутствовать не все этапы):
- демонстрация результатов синтеза, преобразования грамматики или автомата;
- сдача письменного отчета по лабораторной работе;
- устно-письменная защита.
По желанию студента рейтинг контрольного опроса, соответствующий удовлетворительной оценке, может быть зачтен при защите соответствующих модулю лабораторных
работ (1 модуль – лабораторные 1-3, 2 модуль – лабораторные 4-6, 3 модуль – лабораторная
7).
Методические указания к выполнению расчетного задания изложены в Приложении Б
настоящего стандарта.
Итоговый контроль в семестре осуществляется в форме зачета, который самостоятельного веса в рейтинге не имеет, а рейтинг зачета формируется из рейтингов контрольных
опросов, рейтингов защит лабораторных работ, рейтинга выполнения и защиты расчетного
задания. При этом рейтинг зачета вычисляется только при наличии защит по всем лабораторным работам, защиты расчетного задания и при условии, что все рейтинги не ниже 25
баллов.
3.2.4 Образовательные технологии
Лекционный материал в количестве 17 часов дается в интерактивной форме. Наряду
с классическими формами проведения занятий, предусматривается применение следующих
инновационных методов обучения:
- модульно-рейтинговая система квалиметрии учебной деятельности студентов;
- лекции и защиты лабораторных носят информационно-развивающий характер (дискуссия, диалог, коллективное решение проблем, метод аналогий);
- использование компьютерного оборудования при чтении лекционного материала, выполнении лабораторных работ, расчетного задания;
- личностно-ориентированный метод проблемного обучения, предусматривающий постановку для каждого студента индивидуального задания по каждой лабораторной работе и
по расчетному заданию;
- при выполнении лабораторных работ, расчетного задания, а также при СРС предусмотрен поисково-исследовательский метод обучения (самостоятельный поиск дополнительной информации, исследование и анализ различных способов решения проблем).
3.2.5 Особенности преподавания дисциплины
Особенностью преподавания дисциплины является обязательность постоянного консультирования преподавателя при выполнении задач синтеза автоматов-преобразователей с
целью построения как можно более полной модели функционирования абстрактного автомата из заданной предметной области. Это способствует ускорению формирования у студентов навыков логического мышления при синтезе абстрактных автоматов.
3.2.6 Материально-техническое обеспечение дисциплины
Для изучения дисциплины студенту требуется персональный компьютер с установленным на него программным обеспечением, приведенным в п.3.1.2. Для работы с электронными источниками информации необходимы текстовый редактор Word, Блокнот, Acrobat
Adobe Reader. В АлтГТУ занятия проводятся на базе лаборатории микроЭВМ, компьютерного класса кафедры ВСИБ, лекционной мультимедийной аудитории.
13
СТО АлтГТУ 15.62.1.1067 – 2012
3.3 Лист согласования рабочей программы
Наименование дисциплин, изучение которых Ведущая кафедра
опирается на данную
дисциплину
1
2
Методы анализа в теоПМ
рии формальных языков
Автоматное программиПМ
рование
Теория языков проПМ
граммирования и методы трансляции
Подпись заведующего кафедрой
3
4
нет
нет
нет
Разработчик:
Профессор
Л.И.Сучкова
подпись
инициалы и фамилия
Заведующий кафедрой
прикладной математики
С.А. Кантор
подпись
инициалы и фамилия
Декан факультета информационных технологий
Г.Н. Кобелев
подпись
Начальник ОМКО АлтГТУ
инициалы и фамилия
С.А. Федоровых
подпись
инициалы и фамилия
14
СТО АлтГТУ 15.62.1.1067 – 2012
ПРИЛОЖЕНИЕ А
Методические указания по выполнению лабораторных работ по дисциплине
"Теория автоматов и формальных языков"
А.1 Общие сведения о лабораторном практикуме
А.1.1 Цель лабораторного практикума
Лабораторный практикум по дисциплине «Теория автоматов и формальных языков»
служит для практического закрепления теоретических навыков, полученных в ходе изучения лекционного материала и формирования необходимых компетенций.
Цели выполнения лабораторных работ:
- закрепление теоретических знаний по дисциплине и применение этих знаний при разработке и преобразовании грамматик и автоматов;
- развитие навыков выполнения самостоятельной работы, а также ее оформления и
представления результатов проделанной работы.
А.1.2 Организация лабораторного практикума
Для посещения лабораторных занятий студенческая группа делится на подгруппы, посещающие отведенные для них часы. Это позволяет использовать индивидуальный подход
к обучению, отвечать на возникшие вопросы и способствует лучшему усвоению материала.
На каждую лабораторную работу выдается общее задание, соответствующее изучаемому теоретическому материалу, и индивидуальный вариант задания. Задания выдаются по
мере изучения материала и предполагают синтез и преобразование грамматик и автоматов
различных типов. При выполнении текущей лабораторной работы до установленного срока
возможно выдача задания по следующим работам. Информация о темах лабораторных работ дана ниже.
Студент должен в соответствии с темой решить поставленную задачу и оформить отчет
о проделанной работе.
Для каждой лабораторной работы предусмотрены сроки ее выполнения и защиты.
Каждая работа оценивается по стобалльной шкале. В случае выполнения и/или защиты работы после установленного срока, оценка может быть снижена.
Для каждой лабораторной работы необходимо:
- продемонстрировать синтезированную грамматику (автомат) или результаты преобразования;
- представить отчет о выполнении лабораторной работы,
- пройти устную (ответы на вопросы преподавателя) и/или письменную защиту, если
рейтинг контрольного опроса меньше 25 баллов или не устраивает студента.
А.1.3 Разработка грамматик и автоматов
Требования, предъявляемые к грамматикам и автоматам:
- грамматики и автоматы должны строиться согласно теоретическим основам их синтеза;
- грамматики и автоматы должны полностью правильно решать поставленную задачу;
- отчет должен содержать грамматику или автомат.
15
СТО АлтГТУ 15.62.1.1067 – 2012
А.1.4 Темы и задания к лабораторным работам
Лабораторная работа № 1.
Тема: Синтез автоматных грамматик и автоматов-распознавателей.
Цели и задачи работы: изучение и практическая реализация синтеза автоматных грамматик и конечных автоматов-распознавателей.
Теоретические сведения о работе и примеры синтеза автоматных грамматик и автоматов-распознавателей приведены в списке литературы и конспекте лекций.
Задание к работе: Для заданного регулярного языка построить порождающую его автоматную грамматику и распознающий его автомат. Самостоятельно выполнить задание в
соответствии с индивидуальным вариантом. Выполнить тестирование работы автомата с
помощью программы automat.exe.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик, графический редактор, программа automat.exe, ОС Windows XP/7.
В программе automat.exe для тестирования конечного автомата-распознавателя доступны:
 вкладка для вывода матрицы переходов автомата;
 вкладка для вывода таблицы переходов автомата;
 кнопки панели быстрого запуска (рисунок 1):
Для задания входной цепочки внизу формы есть лента. Красная стрелка указывает на
ячейку под головкой автомата. Для того, чтобы задать символ в ячейке необходимо нажать
на ячейку (она выделится красным цветом) или перейти на неё с помощью клавиш-стрелок,
после этого нажать на клавишу соответствующую символу, который необходимо записать в
ячейку ленты. Также на ленте внизу формы есть кнопки для сдвига ленты вправо (кнопка
«>») и влево (кнопка «<»). Ими можно пользоваться и при пошаговой интерпретации авто-
мата.
Рисунок 1 – Пример формы для тестирования автомата-распознавателя
При работе с автоматами-распознавателями необходимо задать его командами, таблицей или матрицей переходов (рисунки 2, 3).
16
СТО АлтГТУ 15.62.1.1067 – 2012
Рисунок 2 – Таблица переходов распознавателя
Рисунок 3 – Матрица переходов распознавателя
На панели инструментов формы для работы с автоматами имеются кнопки, большинство из которых дублируют команды меню «Операции» для заданного вида автомата. Поэтому не все кнопки всегда являются видимыми. Для тестирования конечного автоматараспознавателя используются следующие кнопки:
– кнопка «Построить автомат».Осуществляет синтез автомата по заданному описанию. Команды автомата вводятся непосредственно на вкладке «Команды». Кнопка доступна для всех видов автоматов.
– кнопка «Интерпретировать с получением результата сразу». Осуществляет интерпретацию работы команд автомата, при этом входные данные для автомата должны
быть записаны на ленте. Кнопка доступна для всех видов автоматов.
– кнопка «Интерпретировать пошагово».
Осуществляет интерпретацию автомата с пошаговым выводом результатов работы. За
каждый шаг интерпретируется одна команда. Входные данные для автомата также должны
быть записаны на ленте. Кнопка доступна для всех видов автоматов.
Методика выполнения работы:
1. Изучить методы синтеза автоматных грамматик.
2. Выполнить синтез автоматной грамматики для заданного регулярного языка.
3. Изучить методы синтеза конечных автоматов-распознавателей.
4. Выполнить синтез конечного автомата-распознавателя для заданного регулярного
языка.
5. Осуществить тестирование работы конечного автомата-распознавателя.
17
СТО АлтГТУ 15.62.1.1067 – 2012
Требования к отчету:
Отчет должен содержать титульный лист, построенную автоматную грамматику, все
этапы построения автомата-распознавателя, перечень цепочек, на которых тестировался
автомат.
Контрольные вопросы по лабораторной включают теоретические вопросы и выполнение практического задания по синтезу автоматной грамматики и автомата-распознавателя
для регулярного языка, предложенного преподавателем.
Индивидуальные задания
1.
(bac)+  cb+ (ba)+  b* ac*
2. (a* dc +  acd*)*
3. k* c* d  (kda)+ b*
4. (a+ d* c)*  ab* c
5. (ba)* ca+  b*a+ c*
6. (bc)* cc+  bc*  ab*
7. d+ ac*  (dbc)+ ac*
8. (a* ba)+  a+ (bc)+
9. b (kab)+ d+  (b*c)*
10. (k* a)+ b  ka + d*
11. cac + (ba)*  (ca)* cb*
12. (ab* c+  с+ da*)*
13. c (daa) * (ca)*  ca* ac*
14. (ba)+ c* a  (bca)*  (ba)* c
15. cc (ba) +  (ca)+ a*  c* (ba)*
16. (ca)+  (bc)*  (cc* a  ca)*
17. (ca+b)+  (ba)*  bc* (ab)*
18. (b+ cd+)*  b* cdc*
19. bac*  (bca)+ (ba)*
20. Дополнение b* a  ba b+
21. Дополнение bac*  (bca)+
22. (c*ab)+  (ba)+  b*c*
23. (kc)* c d*  (dc)+ b*
24. (a+ d cd*)*  ab* c
25. (ca+b)*  (ba)+  bc*
Лабораторная работа № 2.
Тема Преобразования автоматов-распознавателей.
Цели и задачи работы: изучение алгоритмов детерминизации и минимизации конечных автоматов-распознавателей. Практическая реализация детерминизации и минимизации
конечных автоматов-распознавателей.
Теоретические сведения о работе и алгоритмы детерминизации и минимизации автоматов-распознавателей приведены в [4] и конспекте лекций.
Задание к работе: Для автомата, построенного в лабораторной № 1, построить эквивалентные минимальный и детерминированный автоматы. Проверить правильность построения с помощью программы automat.exe.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик, графический редактор, программа automat.exe, ОС Windows XP/7.
Методика выполнения работы:
1. Изучить методы детерминизации и минимизации конечных автоматовраспознавателей.
18
СТО АлтГТУ 15.62.1.1067 – 2012
2. Выполнить минимизацию и детерминизацию конечного автомата-распознавателя и
осуществить проверку правильности построений с помощью программы automat.exe.
В программе наряду с пунктами меню используются следующие кнопки:
– кнопка «Детерминировать с получением результата сразу». Осуществляет детерминизацию автомата. Кнопка доступна только для конечного автомата-распознавателя.
– кнопка «Детерминировать пошагово». Осуществляет пошаговую детерминизацию с выводом промежуточного результата на каждом шаге. Кнопка доступна только для
конечного автомата-распознавателя.
– кнопка «Минимизировать с получением результата сразу». Является доступной для автоматов-распознавателей, а также преобразователей Мили и Мура.
– кнопка «Минимизировать пошагово». Является доступной для автоматовраспознавателей, а также преобразователей Мили и Мура.
При минимизации распознавателя состояния группируются по классам эквивалентности
и состояния, входящие в один класс, выделяются одинаковым цветом. Используется при
минимизации (рисунок 4).
Рисунок 4 – Пошаговая минимизация распознавателя
При детерминизации автомата-распознавателя работа осуществляется с таблицей переходов. Пример работы программы при пошаговой детерминизации автоматараспознавателя приведен на рисунке 5.
Рисунок 5 – Пошаговая детерминизация распознавателя
19
СТО АлтГТУ 15.62.1.1067 – 2012
Требования к отчету:
Отчет должен содержать титульный лист, граф исходного автомата, таблицу переходов
для построения детерминированного автомата, граф детерминированного автомата, матрицы переходов для построения минимального автомата, граф минимального автомата.
Контрольные вопросы по лабораторной включают теоретические вопросы и выполнение практического задания с детерминизацией и/или минимизацией автомата, предложенного преподавателем.
Лабораторная работа № 3.
Тема: Связь автоматов-распознавателей и линейных грамматик.
Цели и задачи работы: изучение и практическая реализация синтеза леволинейной и
праволинейной грамматики для автомата-распознавателя.
Теоретические сведения о работе и примеры синтеза линейных грамматик приведены
в списке литературы и конспекте лекций.
Задание к работе: построить леволинейную и праволинейную грамматики для минимального автомата-распознавателя, построенного в лабораторной работе № 2.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик.
Методика выполнения работы:
1. Изучить теоремы о связи линейных грамматик и автоматов-распознавателей.
2. Выполнить синтез линейных грамматик.
3. Осуществить проверку возможности порождения с помощью грамматик цепочек,
распознаваемых автоматом.
Требования к отчету:
Отчет должен содержать титульный лист, задание, автомат, заданный графом, леволинейную и праволинейную грамматики.
Контрольные вопросы по лабораторной включают теоретические вопросы и практические задания по синтезу линейных грамматик по автомату, предложенному преподавателем.
Лабораторная работа № 4.
Тема: Синтез КС-грамматик.
Цели и задачи работы: изучение и практическая реализация синтеза контекстносвободных грамматик по заданному формальному языку.
Теоретические сведения о работе и пример синтеза приведены в [2,3] и конспекте
лекций.
Задание к работе: Для заданных контекстно-свободных языков построить порождающие их грамматики. Самостоятельно выполнить задание в соответствии с индивидуальным
вариантом.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик, текстовый редактор.
Методика выполнения работы:
1. Изучить способы синтеза КС-грамматик, операции над КС-языками.
2. Построить грамматику для каждого из заданных формальных КС-языков.
1. Требования к отчету:
Отчет должен содержать титульный лист, грамматики, соответствующие заданным
формальным КС-языкам.
20
СТО АлтГТУ 15.62.1.1067 – 2012
Контрольные вопросы по лабораторной включают теоретические вопросы и выполнение практического задания с написанием грамматики для простого формального КС-языка,
предложенного преподавателем.
Индивидуальные задания:
1. L1=an bca*b2n+1  bc*, n ≥ 1.
L2= (ab)* c   b  (ab)n cn, n ≥ 0.
2. L1=(a*bc)n a+ (bca)n  a*, ≥0;
L2=ab* a+(bc)+a  ab*  ab*  anbn, n ≥ 0.

3. L1= (b*a) n b*a n c   c*a mb 2m  , n, m ≥ 1;
L2=ab*c  (anbcn  a+)+, n ≥ 0.
4. L1=abc+  b*a+  (abc)n a+bc*a2n+2, n ≥ 0;

L2= (bc*a)* ab am (bc*)2m (abc)* ab , n ≥ 0.
5. L1= (bc) m a* (cb) 2m  ba c*  +, m ≥ 0;
L2=(ac*b)n+1abcm ba* c2m (bc a)  bc2n, n ≥ 0.
6. L1= ab*c n abn  bcam (ab)m  *, n,m ≥ 1;
L2=(bc+a*b)2n+2(ab+c)m a2m (cb+abc)n.
7. L1=(bcna2n  b*)m a2m  abc*b*, n, m ≥ 0;
L2=a*bna*cn  b+, n ≥ 1.
8. L1=(ab*amcb2m  a*(bc)+)n c*(ab  c*)n, n, m ≥ 0;
L2=anbn  c*a, n ≥ 1.
9. L1=b*an(abc*a  bcmam)bn, n, m ≥ 1;
L2=(a*bc)n(bac+a)m(akbk)2m abc*(c*ab)n+1, k ≥ 0.
10. L1=a*b+a*  (abc)2n a*bc a2n+1, n ≥ 0;
L2=(b*abc+)2k (a(ab)*b)m (atbt+2)m (ab*)k, m, k ≥ 1, t ≥ 0.
11. L1=(ab)n (bc*  c+ba*) (bc)2n  abc*, n ≥ 0;
L2=(abc*ck(ba)2k)m ) (ab*c+)n (a*b)n (bc+a)m.
12. L1=anbc+ba*cn  (ab)m a(bc)2m, n, m ≥ 1;
L2=(a2b2)2n bcm a2m+1(ba*c)n.
13. L1=(bc*  ban (cba)2n+2  bc+)*, n ≥ 0;
L2=(ba*c+)n abc*am (bc*a)m a3n+2, n, m ≥ 0.
14. L1=bca+  b*a+  (bc)n a+bc* a2n+2, n ≥ 0;
n
n
L2= (bc) n2 a  (ab) 2n  ab*c(ab)   a*  .
15. L1=(ab*ambcm)n ca(b  ca*)n, n, m ≥0;
L2=anbcn  (abc)*, n ≥ 1.

16. L1= (ab) m b* (bc) 2m  aba c*  , m ≥ 0;
L2=(bm ac2m+1  (ba)*bc+)*, m ≥ 1.
17. L1=(abc)n+1 a*(bc)n  ba*c(ba)+  (bcd)+, n ≥ 0;
L2=(anbn)* bcamab*c(akb2k)2m, n ≥ 0;
18. L1=an(bca*  abc*)b2n  abc*a, n ≥ 1;
*
L2= (ab*ca nb 2n1 )  abk c k  (abc*a)2m, m ≥ 0, k ≥ 0, n ≥ 0.
19. L1=(ba*an(bc)n  bamc2m+1)+, n, m ≥ 0;
m
L2=anb2m+1cm (ab ) bc  , k ≥ 1.
20. L1=(ba)n (ca*  bc+) b2n+1  abc+a*;
L2=(ab*a2n(bc)2n  abamc2m+1)+, n, m ≥ 0.
21. L1=c+an(bca*  ambm  b*)*(ba)n+1, n ≥ 0, m ≥ 1;
L2=c*b  (cb)2n ban+3  bca*.
* k
k n
21
СТО АлтГТУ 15.62.1.1067 – 2012
22. L1= (b k ct k a* )*  (bc*  a nb n1 )   , k ≥ 1, n ≥ 0;
L2=(ab+c*  rt*)n (ab*)m cm+2 (c+)n, n ≥ 1, m ≥ 0.
23. L1=(a*b*)n c (a+  d+)n, n ≥ 1;
L2=(ac+b)m+1(c*)n a2n (af+)m, m ≥ 1, n ≥ 0.
24. L1=(ac+  (b*c)nkn+1)+, n ≥ 0;
*
L2= (cba)  c*  b   dn+1  (ab)m+2 tm, m ≥ 1, n ≥ 0.
25. L1=(a*b*c*)n (bca)n  (abc)*, n ≥ 0;
L2=ab*a+(dc)*  an+2 bm dcm an, n ≥ 0, m ≥ 0.
26. L1=(ab*akdbk  (bc)+)n an, n ≥ 0;
L2=dnbn  c*a*b*, n ≥ 0.
27. L1=b*an (bc*a  bcmam) dn, m, n ≥ 0;
L2=(a*bc)n bm+1 am+2 (c*ab)n+1.
28. L1=(ad)n(ac+  df*) b2n, n ≥ 0;
L2=(b*)n (akdbk  (b*cd+)+)3n+1, n ≥ 0, k ≥ 1.
29. L1=((a*b*c+)n(a*)n  b+)+, n ≥ 0;
L2=(a*b*)k c dk+1  (anbn)+, k ≥ 1, n ≥ 0.
n
Лабораторная работа № 5.
Тема: Эквивалентные преобразования КС-грамматик, построение дерева разбора.
Цели и задачи работы: изучение и практическая реализация способов эквивалентных
преобразований контекстно-свободных грамматик. Изучение методов грамматического
разбора цепочек, построение дерева разбора.
Теоретические сведения о работе и примеры преобразований грамматик приведены в
[1,5] и конспекте лекций.
Задание к работе: Для заданного формального КС-языка и цепочки построить дерево
грамматического разбора. Для грамматик, построенных в лабораторной работе № 4, выполнить устранение левой рекурсии, проверку на продуктивность нетерминалов, их независимость от аксиомы, преобразовать грамматики к неукорачивающей форме. Самостоятельно
выполнить задание в соответствии с индивидуальным вариантом.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик, текстовый редактор.
Методика выполнения работы:
1. Изучить способы эквивалентных преобразований КС-грамматик.
2. Выполнить указанные преобразования для каждого из формальных языков.
Требования к отчету:
Отчет должен содержать титульный лист, исходные и преобразованные грамматики (из
лабораторной № 4), КС-грамматику и дерево разбора цепочки α, принадлежащей языку (см.
индивидуальные задания ниже).
Контрольные вопросы по лабораторной включают теоретические вопросы и выполнение практического задания с преобразованием грамматики для грамматики, предложенной
преподавателем.
Индивидуальные задания :
1. L = ba*  c (ba)+ ak cbk
k  0 α = cbabaacb
2. L = ((a* b+ (cd)n an)*  df* c+)+
n  0 α = dffccaabcdcdaa
3. L = (a+ b)n k* (bc)n a*
n  1 α = aabaabkbcbc
22
СТО АлтГТУ 15.62.1.1067 – 2012
4. L = (b+ c*)n+1 a* (f* d  a+)n
n  0 α = bbccbbaaaaa
5. L = (an c* b2n + 1  am + k + 1 b2k + 2  bc* a (bc)+)*
n, m, k  0 α = aacbbbbbbabc
6. L = (a* bc+  (bc)* an+m bm с2n)+
n, m  0 α = bcaabccaabccc
7. L = (an bn+2)+ bca*
n0
α = abbbbcaaa
8. L = (a* bk r ak c+)*
k  1 α = bbraccc
9. L = (ab)+  (ca)n+k (bc+  b* ca+)2n  a*
n, k  0 α = cacacabbbcaadcccc
10. L = ak a* bc+ bk+3 (c+  a* b) t
k0
α = aaabccbbbct
11. L = (an bcn  a+b)+
n  0 α = aaabccc
12. L = (bc+)n c+ ab* an
n  0 α = bcccaa
13. L = an+1 ck m+ dk t* bn
k, n  0 α = aaccmmmddb
14. L = a* bn a* b2m (cb)m (ab* c  bca*)2n
n, m  0 α = aabbbcbabbcbcaa
15. L = ab* c (ab)+  a*
α = acabab
16. L = a+ (bc)+ b  an b* cn
n  0 α = abcbcbcb
17. L = an b cn  (abc)*
n  0 α = abcabc
18. L = (bc)n+2 a+ (ab)2n
n  0 a = bcbcaaa
19. L = bca*  (ab* c2n b* (ab  bca*)n+k)+
n, k  1 a = abccbbbabbcaaa
20. L = an (bcam b2m+3  a*) bn
n, m  0 a = aabcabbbbbbb
21. L = c+ an (ba*  am bm) (ba)n
n  1; m  0 a = ccabba
22. L = ab*  ak an tcn bk+2
n  0; k  0 a = aatbbbb
23. L = (b* a)n b+ an  c+ am b2m
n  0, m  1 a = bbbabba
24. L = bca+  bk b* ak
k  0 a = bbbbaaa
Лабораторная работа № 6.
Тема Автомат с магазинной памятью. Разбор с возвратом.
Цели и задачи работы: изучение алгоритма работы автомата с магазинной памятью
(МП-автомата) и его использование для грамматического разбора цепочки контекстносвободного языка.
Теоретические сведения о работе приведены в [3,4].
23
СТО АлтГТУ 15.62.1.1067 – 2012
Задание к работе: Для заданного КС-языка построить порождающую грамматику и
МП-автомат, распознающий заданную цепочку. Самостоятельно выполнить задание в соответствии с индивидуальным вариантом. Проверить правильность построения и выполнить
тестирование работы МП-автомата с помощью программы automat.exe.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик, графический редактор, программа automat.exe, ОС Windows XP/7.
Методика выполнения работы:
1. Изучить правила построения МП-автоматов.
2. Выполнить построение КС-грамматики.
3. Выполнить построение МП-автомата для КС-грамматики из лабораторной 5.
4. Выполнить тестирование работы МП-автомата для заданной цепочки.
Для конечного автомата с магазинной памятью в программе automat.exe доступны:
- вкладка для ввода и редактирования грамматики;
- таблица-магазин;
- поля для вывода выходного алфавита автомата;
- поле для выбора способа разбора автомата.
При создании МП-автомата отображаются следующие элементы:
 кнопка на панели инструментов «Построить»;
 кнопка на панели инструментов «Интерпретировать с получением результата сразу»;
 кнопка на панели инструментов «Интерпретировать пошагово»;
 входная лента автомата;
 вкладка «Грамматика» (она по умолчанию является активной);
 вкладка «Команды» (недоступна для редактирования);
 список состояний автомата (первоначально пустой);
 магазин МП-автомата (первоначально пустой);
 выпадающий список для выбора типа анализа МП-автомата;
 поле для просмотра наименования начального состояния;
 поле для просмотра символов алфавита ленты МП-автомата;
 поле для просмотра символов алфавита магазина;
 таблица для вывода синтаксических ошибок, допущенных пользователем при вводе
правил грамматики.
Внешний вид формы представлен на рисунке 6.
Рисунок 6 – Форма для создания описания МП-автомата
Чтобы создать МП-автомат, распознающий какой-либо язык, необходимо задать правила
грамматики, порождающей этот язык. Для этого эти правила нужно ввести в поле на вкладе
24
СТО АлтГТУ 15.62.1.1067 – 2012
«Грамматика». При нажатии на кнопку «Построить» на панели инструментов происходит
следующее. Анализируется тип автомата, анализируются правила, строятся команды, алфавиты, список состояний МП-автомата. Если при анализе были обнаружены ошибки, они
выводятся в список ошибок.
Если при анализе правил не было обнаружено синтаксических ошибок, активной становится вкладка «Команды». Внешний вид формы, представляющей описание построенного
автомата, приведен на рисунке 7.
Рисунок 7 – Форма с описанием построенного МП-автомата
Для того, чтобы осуществить интерпретацию МП-автомата, необходимо создать его
описание или открыть его с помощью команды главного меню «Файл» – «Открыть» – «Автомат с магазинной памятью». Для запуска процесса интерпретации на панели инструментов на форме имеются кнопки «Интерпретировать с получением результата сразу» и «Интерпретировать пошагово». Пошаговая интерпретация позволяет более наглядно проследить работу автомата. При пошаговой интерпретации выполняемая команда выделяется
цветом, отображаются изменение положения головки ленты на данном шаге, а также изменения содержимого магазина (рисунок 8).
Рисунок8 – Пошаговая интерпретация МП-автомата
25
СТО АлтГТУ 15.62.1.1067 – 2012
При интерпретации в обычном режиме отображаются только окончательные состояния
ленты и магазина.
Если ни одна из возможных последовательностей выполнения команд не приведет к распознаванию заданной цепочки, то об этом выводится сообщение (рисунок 9).
Рисунок 9– Сообщение о неудовлетворительном результате
разбора при пошаговой интерпретации МП-автомата
Требования к отчету:
Отчет должен содержать титульный лист, правила МП-автоматов для нисходящей и
восходящей стратегии разбора.
Контрольные вопросы по лабораторной включают теоретические вопросы и выполнение практического задания с построением МП-автомата по грамматике, предложенной преподавателем.
Индивидуальные задания – см. в лабораторной № 5:
Лабораторная работа № 7.
Тема: Автоматы Мили и Мура. Синтез и преобразования.
Цели и задачи работ:
Изучение синтеза автомата Мили. Преобразование автомата Мили в автомат Мура.
Теоретические сведения и примеры синтеза автоматов Мили и Мура приведены в [4] и
конспекте лекций.
Задание: Для заданного абстрактного автомата Мили выполнить его преобразование в
автомат Мура. Проверить правильность преобразования с помощью программы
automat.exe.
Описание используемых средств для выполнения работы : листы бумаги, карандаш,
ластик, графический редактор, программа automat.exe, ОС Windows XP/7.
Методика выполнения работы:
1. Изучить методы синтеза автоматов-преобразователей.
2. По заданному автомату Мили построить эквивалентный автомат Мура.
3. Осуществить контроль правильности построений в программе automat.exe.
Структура пункта меню «Операции» в программе для автомата Мили приведена на рисунке 10.
Рисунок 10 – Меню «Операции» для автомата Мили
Структура пункта меню «Операции» для автомата Мура приведена на рисунке 11.
26
СТО АлтГТУ 15.62.1.1067 – 2012
Рисунок 11 – Меню «Операции» для автомата Мура
Для конечного автомата Мили и Мура доступны:
- выходная лента;
- вкладка для вывода матрицы выходов автомата;
- вкладка для вывода таблицы переходов;
- поля для вывода выходного алфавита автомата;
- кнопки панели быстрого запуска (рисунок 12):
– кнопка «Минимизировать с получением результата сразу».
– кнопка «Минимизировать пошагово».
– кнопка «Интерпретировать с получением результата сразу». Осуществляет интерпретацию автомата, при этом входные данные для автомата должны быть записаны на ленте.
– кнопка «Интерпретировать пошагово».
Осуществляет интерпретацию автомата с пошаговым выводом результатов работы. За
каждый шаг интерпретируется одна команда. Входные данные для автомата также должны
быть записаны на ленте..
– кнопка «Перевод». Осуществляет для автомата Мили преобразование в автомат
Мура, для автомата Мура – преобразование в автомат Мили. Доступна только для этих типов автоматов.
– кнопка «Отменить». Для всех видов автоматов кнопка доступна во время пошаговой интерпретации. Прерывает интерпретацию.
Рисунок 12 – Пример формы для автомата Мили
Требования к отчету:
Отчет по лабораторной № 7должен содержать титульный лист, абстрактные автоматы
27
СТО АлтГТУ 15.62.1.1067 – 2012
Мили и Мура.
Контрольные вопросы по лабораторной включают теоретические вопросы, предложенные преподавателем.
Индивидуальные задания выбираются на основе упрощенного автомата Мили для реализации расчетного задания.
28
СТО АлтГТУ 15.62.1.1067 – 2012
ПРИЛОЖЕНИЕ Б
Методические указания по выполнению расчетного задания по дисциплине
"Теория автоматов и формальных языков "
Б.1 Общие сведения о расчетном задании
Б.1.1 Цель выполнения расчетного задания
Расчетное задание по дисциплине «Теория автоматов и формальных языков» является
заключительным этапом в изучении студентами соответствующей учебной дисциплины.
Расчетное задание предполагает самостоятельную работу студента и служит для систематизации и закрепления теоретических знаний и практических навыков по дисциплине, а
также для применения этих знаний при разработке формальных грамматик и автоматов,
позволяющих решить поставленную задачу. При выполнении работы развиваются навыки
выполнения самостоятельной работы и проведения научного поиска; приобретаются навыки по оформлению и представлению результатов проделанной работы.
Б.1.2 Организация расчетного задания
Расчетное задание выполняется согласно заданию, выданному преподавателем на 8 неделе семестра. Задание состоит из двух частей. Первая часть посвящена разработке КСграмматики, вторая – разработке абстрактного автомата-преобразователя для решения неформальной задачи преобразования данных. Итогом расчетного задания являются КСграмматика, порождающая элемент языка программирования, абстрактный автомат Мили,
и пояснительная записка, в которой описаны этапы их построения.
Примеры вариантов:
Вариант 1.
1. Оператор for языка С. Считать, что выражение является целой константой или идентификатором.
2. Построить автомат Мили, управляющий светофором автоматического регулирования транспорта на обычном перекрестке. Движение регулируется так, что в одном направлении разрешено движение T1 секунд, в другом – Т2 секунд. Единственным входным событием автомата является событие завершения тайм-аута.
Вариант 2.
1. Оператор for языка Паскаль. Считать, что выражение является целой константой или
идентификатором.
2. Построить автомат, управляющий зачислением денег на счет сотового телефона.
Считать, что номер телефона состоит не более, чем из 3 символов, причем первая цифра
номера идентифицирует оператора сотовой связи. Используются купюры номиналом 10,
50, 100 рублей.
Вариант 3.
1. Оператор вызова функции типа void с параметрами. Считать, что выражение является целой константой или идентификатором.
2. Построить модель автомата, управляющего продажей кофе различных видов. Имеет
кнопки для выбора вида кофе, для выполнения заказа, для сброса заказа и возврата
денег. Принимает монеты номиналом 5, 10 рублей.
Вариант 4.
1. Оператор описания данных языка С. Данными могут быть простые переменные,
массивы. Считать, что выражение является целой константой или идентификатором.
29
СТО АлтГТУ 15.62.1.1067 – 2012
2. Построить конечный автомат, управляющий работой телефона с автоответчиком,
который в зависимости от номера абонента включает различные записи ответов.
Считать, что номер телефона состоит из 5 цифр, реагировать на последние 2.
Вариант 5.
1. Оператор описания данных языка С. Данными могут быть простые переменные или
структуры.
2. Построить конечный автомат, реализующий модель телефонного коммутатора, который при наборе номера предлагает набор дополнительных цифр (цифры) для соединения с нужным абонентом. Если абоненту все равно с кем разговаривать, то он
может нажать, например, цифру 0, тогда подается сигнал на все телефоны, подключенные к коммутатору. Если дополнительная цифра не нажимается, то после истечения некоторого времени связь с абонентом разрывается.
Расчетное задание должно быть выполнено и защищено до окончания семестра в срок,
установленный в задании. Расчетное задание оценивается по стобалльной шкале, полученный рейтинг зачитывается в общий рейтинг семестра. При выполнении и/или защите работы после установленного срока оценка может быть снижена.
Процесс сдачи расчетного задания включает в себя:
- демонстрацию разработанных грамматики и автомата;
- представление отчета о выполнении расчетного задания;
- устную защиту.
По результатам выполнения расчетного задания студент должен сдать отчет на бумажном носителе.
Процесс выполнения расчетного задания рекомендуется разделить на следующие этапы:
1) формализация задачи, изучение необходимой учебной литературы;
2) разработка КС-грамматики;
3) разработка абстрактного автомата Мили;
4) оформление отчета;
5) защита и сдача расчетного задания.
Отчет рекомендуется оформлять параллельно с разработкой грамматики и автомата
Мили. Для этого необходимо документировать текущие этапы работы.
Б.2 Оформление отчета по расчетному заданию
Отчет по расчетному заданию должен включать:
- титульный лист;
- задание;
- содержание;
- введение;
- формализованную постановку задачи;
- контекстно-свободную грамматику;
- абстрактный автомат и описание логики его работы;
- заключение;
- список использованных источников;
Оформление отчета должно быть осуществлено в соответствии с СТП АлтГТУ 12 570 и
СТО 12 400 2009.
30
Download