Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Саратовский государственный технический университет имени Гагарина Ю.А.»
Кафедра «Информационная безопасность автоматизированных систем»
РАБОЧАЯ ПРОГРАММА
«Теория языков программирования и методы трансляции»
для подготовки бакалавра по направлению 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)-грамматики.
 - 
Детерминированный восходящий синтаксический анализ. Операции переноса и свёртки.
 - 
Грамматика простого предшествования. Порядок работы грамматического анализатора.
 - 
Нахождение отношений предшествования.
 - 
Метод "перенос-опознание".
 - 
Синтаксически управляемый перевод и синтаксический анализ. МП-преобразователь.
 - 
Порядок построения нисходящего и восходящего МП-преобразователя по простой схеме СУ-перевода.
 - 
ЬК(к)-грамматика и постфиксная запись в СУ-переводе.
 - 
Грамматики, содержащие действия в грамматическом разборе алгебраических выражений.
 
- 
Семантический анализ и синтез объектной программы.
 - 
Проверка контекстных условий.
 - 
Таблицы идентификаторов и распределение памяти.
 - 
Глобальные и локальные переменные. Области видимости.
 - 
Представление промежуточной программы.
 - 
СУ-трансляция и генерация промежуточной программы.
 
