Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рабочая программа Теория языков программирования и методы трансляции.docx
Скачиваний:
56
Добавлен:
27.01.2015
Размер:
33.89 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Саратовский государственный технический университет имени Гагарина Ю.А.»

Кафедра «Информационная безопасность автоматизированных систем»

РАБОЧАЯ ПРОГРАММА

«Теория языков программирования и методы трансляции»

для подготовки бакалавра по направлению 230100.62 «Информатика и вычислительная техника»

Профиль «Программное обеспечение средств вычислительной техники и автоматизированных систем»

Квалификация - бакалавр

форма обучения – заочное обучение (сокращённое)

курс - 4

семестр – 7

зачётных единиц – 7

всего часов - 252,

в том числе:

лекции - 6 час

лабораторные занятия - 10 часов самостоятельная работа - 200 часов курсовой проект - 7 семестр

экзамен - 7 семестр

Рабочая программа обсуждена на заседании кафедры ПВС

«29 » 08 2014_ года, протокол № 1

Зав. кафедрой /Байбурин В.Б./

Рабочая программа утверждена на заседании УМКС/УМК1

«02 » 09 2014 _ года, протокол №1

Председатель УМКС/УМКЫ /Байбурин В.Б./

Саратов 2014

1. ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЁ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ.

  1. Цель преподавания дисциплины.

Ознакомить и научить студентов основам теории языков программирования. Научить студентов основным методам построения трансляторов с алгоритмических языков. Рассмотреть формальные модели и методы трансляции.

  1. Задачи изучения дисциплины.

Изучение и привитие навыков в практическом применении формальных языков и грамматик, лексического и синтаксического анализа. Освоение методы синтеза объектной программы. Практическое использование конечных автоматов и автоматов с магазинной памятью. Применение атрибутивных грамматик и конечных распознавателей.

  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 часов самостоятельной работы.

СПИСОК ОСНОВНОЙ И ДОПОЛНИТЕЛЬНОЙ ЛИТЕРАТУРЫ ПО

ДИСЦИПЛИНЕ. Основная:

  1. Компаниец Р.И., Маньков Е.В., Филатов Н.Е. Системное программирование. Основы построения компиляторов. -СПб.: КОРОНА Принт, 2010 г.

  2. Хантер Р. Основные концепции компиляторов. -М.: "Вильяме", 2012 г.

Дополнительная:

  1. Бердж В. Методы рекурсивного программирования. -М.: Машиностроение, 1983 г.

  2. Грис Д. Наука программирования. -М.: Мир, 1984 г.

  3. Бек Л. Введение в системное программирование. - М.: Мир, 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. Экзаменационные вопросы.

  1. Общая проблематика развития программирования.

  2. Грамматика, формальные языки - общие понятия и определения.

  3. Контекстная и КС-грамматика. Понятие вывода. Однозначность и эквивалентность.

  4. Грамматический разбор арифметических выражений.

  5. Классификация языков по Хомскому.

  6. Регулярные языки и грамматики.

  7. Исключение е-продукций.

  8. Лексический анализ и конечные автоматы.

  9. Синтаксический анализ. Интуитивный подход. Метод рекурсивного спуска.

  1. Синтаксический анализ. Восходящий метод грамматического разбора.

  2. Лексический анализ. Порядок функционирования лексического анализатора.

  3. Формальные методы синтаксического анализа. Применение КС-грамматик.

  4. Лево и право рекурсивные грамматики, самовставляющиеся грамматики.

  5. Приведение КС-грамматик. Устранение недостижимых и бесполезных символов.

  6. Грамматики Хомского и Грейбах. Устранение цепных правил.

  7. Устранение в КС-грамматиках левых рекурсий.

  8. Грамматики предшествования.

  9. Детерминированный синтаксический анализ. КС-грамматики и магазинные автоматы.

  10. Детерминированные и недетерминированные автоматы. Связь КС-языков с недетерминированными автоматами.

  11. Нисходящий синтаксический анализ и магазинные автоматы.

  12. Детерминированный синтаксический анализ сверху вниз. LL(k) и S-грамматики.

  13. Магазинный автомат для S-грамматики.

  14. Детерминированный магазинный распознаватель для ЬЬ(1)-грамматики.

  15. Детерминированный восходящий синтаксический анализ. Операции переноса и свёртки.

  16. Грамматика простого предшествования. Порядок работы грамматического анализатора.

  17. Нахождение отношений предшествования.

  18. Метод "перенос-опознание".

  19. Синтаксически управляемый перевод и синтаксический анализ. МП-преобразователь.

  20. Порядок построения нисходящего и восходящего МП-преобразователя по простой схеме СУ-перевода.

  21. ЬК(к)-грамматика и постфиксная запись в СУ-переводе.

  22. Грамматики, содержащие действия в грамматическом разборе алгебраических выражений.

  1. Семантический анализ и синтез объектной программы.

  2. Проверка контекстных условий.

  3. Таблицы идентификаторов и распределение памяти.

  4. Глобальные и локальные переменные. Области видимости.

  5. Представление промежуточной программы.

  6. СУ-трансляция и генерация промежуточной программы.