Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Саратовский государственный технический университет имени Гагарина Ю.А.»
Кафедра «Информационная безопасность автоматизированных систем»
РАБОЧАЯ ПРОГРАММА
«Теория языков программирования и методы трансляции»
для подготовки бакалавра по направлению 230100.62 «Информатика и вычислительная техника»
Профиль «Программное обеспечение средств вычислительной техники и автоматизированных систем»
Квалификация - бакалавр
форма обучения – заочное обучение (сокращённое)
курс - 4
семестр – 7
зачётных единиц – 7
всего часов - 252,
в том числе:
лекции - 6 час
лабораторные занятия - 10 часов самостоятельная работа - 200 часов курсовой проект - 7 семестр
экзамен - 7 семестр
Рабочая программа обсуждена на заседании кафедры ПВС
«29 » 08 2014_ года, протокол № 1
Зав. кафедрой /Байбурин В.Б./
Рабочая программа утверждена на заседании УМКС/УМК1
«02 » 09 2014 _ года, протокол №1
Председатель УМКС/УМКЫ /Байбурин В.Б./
Саратов 2014
1. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЁ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ.
-
Цель преподавания дисциплины.
Ознакомить и научить студентов основам теории языков программирования. Научить студентов основным методам построения трансляторов с алгоритмических языков. Рассмотреть формальные модели и методы трансляции.
-
Задачи изучения дисциплины.
Изучение и привитие навыков в практическом применении формальных языков и грамматик, лексического и синтаксического анализа. Освоение методы синтеза объектной программы. Практическое использование конечных автоматов и автоматов с магазинной памятью. Применение атрибутивных грамматик и конечных распознавателей.
-
Перечень дисциплин, усвоение которых студентами необходимо для усвоения данной дисциплины.
Математическая логика и теория алгоритмов, дискретная математика, программирование на языках высокого уровня, организация ЭВМ и систем, операционные системы.
2. ТРЕБОВАНИЯ К ЗНАНИЯМ СТУДЕНТОВ ПО ДИСЦИПЛИНЕ.
Студент должен знать данную дисциплину в установленном рабочей программой объёме и знать ответы на экзаменационные вопросы, содержащиеся в этой рабочей программе.
Студент должен уметь решать практические задачи по разработке трансляторов с алгоритмических языков рассмотренные в лабораторном практикуме и вариантах задания на курсовое проектирование.
3. РАСПРЕДЕЛЕНИЕ ТРУДОЁМКОСТИ (ЧАС.) ДИСЦИПЛИНЫ ПО
ТЕМАМ И ВИДАМ ЗАНЯТИЙ.
№ модуля |
№ недели |
№ темы |
Наименование темы |
Часы |
||||
Всего часов |
Лекции |
Практические занятия |
Лабораторные занятия |
Сам. работа |
||||
- |
1 |
1 |
Установочная лекция. |
2 |
2 |
- |
- |
- |
|
2 |
2 |
Неформальные методы построения Трансляторов |
28 |
2 |
- |
6 |
20 |
|
3 |
3 |
Формализация процесса построения трансляторов. |
46 |
2 |
- |
4 |
40 |
|
|
|
Всего за 7 семестр |
76 |
6 |
- |
10 |
60 |
4. СОДЕРЖАНИЕ ЛЕКЦИОННОГО КУРСА.
№ модуля |
№ недели |
№ темы |
Тема лекции. Вопросы, отрабатываемые на лекции |
|
|
||||
1 |
2 |
3 |
4 |
|
- |
1 |
1 |
Языки и кризис программирования. Математические методы описания языков. Формальные языки и грамматики. Основные понятия и определения. Этапы построения трансляторов. Основные методы поиска ошибок в исходных текстах программ. Современное состояние и перспективы развития программирования трансляторов. |
|
- |
2 |
2 |
Лексический анализ. Интуитивный подход. Классы лексем и их особенности. Формирование таблиц лексем и построение дескрипторного текста исходной программы. Синтаксический анализ. Метод рекурсивного спуска. Пример грамматики упрощенного языка Паскаль. |
|
- |
3 |
3 |
Формализация методов построения трансляторов. Формальные языки и грамматики. Классификация формальных языков по Хомскому. Приведение грамматик. Нормальные формы Хомского и Грейбах. S-грамматики и магазинные автоматы. Грамматики типа LL(k). Алгоритмы построения магазинных анализаторов. |
5. ПЕРЕЧЕНЬ ПРАКТИЧЕСКИХ ЗАНЯТИЙ.
Практические занятия учебным планом не предусматриваются.
6. ПЕРЕЧЕНЬ ЛАБОРАТОРНЫХ РАБОТ.
№ темы |
Всего часов |
Наименование лабораторной работы. Вопросы, отрабатываемые на лабораторном занятии. |
2 |
2 |
Лексический анализ входного языка транслятора. Разбивка лексем на классы. Построение дескрипторного текста. Идентификация и локализация лексических ошибок. |
2 |
2 |
Применение конечных автоматов в лексическом анализе. Построение конечных автоматов на базе регулярных грамматик. Доопределение функций переходов. |
3 |
2 |
Формульный транслятор. Построение синтаксического анализатора методом рекурсивного спуска. |
3 |
4 |
Построение детерминированного синтаксического анализатора. Приведение грамматик. Проверка грамматики на принадлежность к LL(1) грамматики. Построение управляющей таблицы магазинного анализатора. |
7. Курсовой проект.
Курсовой проект выполняется по теме: "Проектирование трансляторов". Включает в себя разработку технического задания на программу "Транслятор" по варианту языка программирования, задаваемого преподавателем. Разработку и отладку программы транслятора. Разработку документации на программный продукт в соответствии с ЕСПД. На это отводится 140 часов самостоятельной работы.
СПИСОК ОСНОВНОЙ И ДОПОЛНИТЕЛЬНОЙ ЛИТЕРАТУРЫ ПО
ДИСЦИПЛИНЕ. Основная:
-
Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программирование. Основы построения компиляторов. -СПб.: КОРОНА Принт, 2010 г.
-
Хантер Р. Основные концепции компиляторов. -М.: "Вильяме", 2012 г.
Дополнительная:
-
Бердж В. Методы рекурсивного программирования. -М.: Машиностроение, 1983 г.
-
Грис Д. Наука программирования. -М.: Мир, 1984 г.
-
Бек Л. Введение в системное программирование. - М.: Мир, 1988
ИНТЕРНЕТ РЕСУРСЫ
1. cmmsu.no-ip.info/download/formal.grammars.and.languages.2009.pdf
2. ict.edu.ru/ft/004979/Posob3.pdf
3. www.mccme.ru/free-books/pentus.hdf
ИСПОЛЬЗОВАНИЕ НАГЛЯДНЫХ ПОСОБИЙ, ТСО, ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ.
В учебном процессе используются персональные компьютеры типа IBM PC при выполнении лабораторных работ. При чтении лекций используются мультимедийные средства.
Рабочую программу составил доцент кафедры ИБС Сайкин А.И.____________
Дополнения и изменения в рабочей программе
Рабочая программа пересмотрена на заседании кафедры « » 201 года, протокол №
Зав. кафедрой /В.Б.Байбурин/
Внесенные изменения утверждены на заседании
УМКС/УМКЫ
« » 201 _ _ года, протокол №
Председатель УМКН / В.Б.Байбурин /
8. Экзаменационные вопросы.
-
Общая проблематика развития программирования.
-
Грамматика, формальные языки - общие понятия и определения.
-
Контекстная и КС-грамматика. Понятие вывода. Однозначность и эквивалентность.
-
Грамматический разбор арифметических выражений.
-
Классификация языков по Хомскому.
-
Регулярные языки и грамматики.
-
Исключение е-продукций.
-
Лексический анализ и конечные автоматы.
-
Синтаксический анализ. Интуитивный подход. Метод рекурсивного спуска.
-
Синтаксический анализ. Восходящий метод грамматического разбора.
-
Лексический анализ. Порядок функционирования лексического анализатора.
-
Формальные методы синтаксического анализа. Применение КС-грамматик.
-
Лево и право рекурсивные грамматики, самовставляющиеся грамматики.
-
Приведение КС-грамматик. Устранение недостижимых и бесполезных символов.
-
Грамматики Хомского и Грейбах. Устранение цепных правил.
-
Устранение в КС-грамматиках левых рекурсий.
-
Грамматики предшествования.
-
Детерминированный синтаксический анализ. КС-грамматики и магазинные автоматы.
-
Детерминированные и недетерминированные автоматы. Связь КС-языков с недетерминированными автоматами.
-
Нисходящий синтаксический анализ и магазинные автоматы.
-
Детерминированный синтаксический анализ сверху вниз. LL(k) и S-грамматики.
-
Магазинный автомат для S-грамматики.
-
Детерминированный магазинный распознаватель для ЬЬ(1)-грамматики.
-
Детерминированный восходящий синтаксический анализ. Операции переноса и свёртки.
-
Грамматика простого предшествования. Порядок работы грамматического анализатора.
-
Нахождение отношений предшествования.
-
Метод "перенос-опознание".
-
Синтаксически управляемый перевод и синтаксический анализ. МП-преобразователь.
-
Порядок построения нисходящего и восходящего МП-преобразователя по простой схеме СУ-перевода.
-
ЬК(к)-грамматика и постфиксная запись в СУ-переводе.
-
Грамматики, содержащие действия в грамматическом разборе алгебраических выражений.
-
Семантический анализ и синтез объектной программы.
-
Проверка контекстных условий.
-
Таблицы идентификаторов и распределение памяти.
-
Глобальные и локальные переменные. Области видимости.
-
Представление промежуточной программы.
-
СУ-трансляция и генерация промежуточной программы.