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



Скачать 105.58 Kb.
Дата25.07.2014
Размер105.58 Kb.
ТипПрограмма дисциплины
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет имени И.Н.Ульянова»
Факультет дизайна и компьютерных технологий

«УТВЕРЖДАЮ»

Проректор по учебной работе
______________ А.Ю. Александров
«______»______________ 20__ г.

РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ



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

Направление подготовки



230100 Информатика и вычислительная техника

Профиль подготовки



Операционные среды САПР

Квалификация (степень) выпускника



Магистр
Форма обучения

очная

Чебоксары

2011

Рабочая программа основана на требованиях Федерального государственного стандарта высшего профессионального образования по направлению подготовки 230100 Теория языков программирования и методы трансляции, утвержденного Приказом Минобрнауки 9.11.2009 № 553.


Составитель: доцент NNNNNNNN (фамилия, имя, отчество) ____________
Рабочая программа рассмотрена и одобрена на заседании обеспечивающей кафедры – компьютерных технологий (протокол № _____ от ___________2010 г.)
Зав. кафедрой: профессор Желтов Валериан Павлович
Рабочая программа согласована с Методической комиссией выпускающего факультета Дизайна и компьютерных технологий.
Председатель комиссии, декан: профессор Желтов Валериан Павлович____________

СОГЛАСОВАНО:

Зам. начальника УМУ: доцент М.Ю. Харитонов ____________


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

Развитие современных программных систем (операционных оболочек) базируется на методах проектирования трансляторов и правилах формальных грамматик языков программирования. Курс – ознакомительный, но требующей хороших знаний основ программирования на алгоритмических языках, а также знаний особенностей языков Borland С++, Turbo C, воспринимать алгоритмически Borland Pascal, т.е. уметь читать исходный текст программы.


2. Место дисциплины в структуре ООП магистра
Дисциплина входит в вариативную часть профессионально цикла образовательной программы магистра. Студент должен иметь начальные сведения о технологии программирования, системном программном обеспечении, программировании.
3. Компетенции обучающегося, формируемые в результате освоения дисциплины
Процесс изучения дисциплины направлен на формирование следующих компетенций:
Способен к самостоятельному обучению новым методам исследования, к изменению научного и научно-производственного профиля своей профессиональной деятельности (ОК - 2);
Применять перспективные методы исследования и решения профессиональных задач на основе знания мировых тенденций развития вычислительной техники и информационных технологий (ПК - 1).

В результате освоения дисциплины обучающийся должен:


  • Знать: особенности языков программирования (как самого языка, так и транслятора), нюансов выполнения написанных на них программ, вытекающих из принятых традиционных способов организации трансляторов (компиляция и интерпретация, время связывания, статические и динамические свойства).




  • Уметь: использовать элементы трансляции при разработке прикладных программ, воспринимающих входные данные в «свободной» форме (с элементами лексики, синтаксиса, внутреннего представления данных).




  • Владеть: навыками разработки сложных алгоритмов и структур данных. Основным элементом программирования на этапе синтаксического анализа является рекурсия (рекурсивные функции), а основной структурой данных - деревья. Связь синтаксической и семантической компонент работает на принципах динамического связывания и событийного программирования.


4. Структура и содержание дисциплины
4.1. Структура дисциплины

Общая трудоемкость дисциплины составляет 6 зачетных единиц, 216 часов.







п/п




Раздел

дисциплины

Семестр

Неделя семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Формы текущего контроля успеваемости (по неделям семестра)

Форма промежуточной аттестации (по семестрам)

Лекции

Практ. зан.

Лабор. зан.

КСР *

СРС **

Всего

Из ауд. зан. в интер. форме




1

Введение в теорию языков программирования


9

1-3

14










15

29







2

Формальные грамматики


9

4-6

14










15

29







3

Процесс трансляции


9

7-9

14

30







15

59







4

Этапы трансляции. Генерация кода


9

10-13

14

20







14

48







5

Проектирование языковых интерпретаторов

9

14-17

14

20







15

49










Итого







70

70




2

74

216








* Контроль самостоятельной работы: аудиторные занятия для проверки самостоятельной работы студентов, приема зачета, проведения текущих консультаций.

** Самостоятельная работа студента, включая курсовой проект, курсовую работу, расчетно-графические работы.
4.2. Содержание лекционных занятий


      1. Введение в теорию языков программирования

Определение языка программирования. Назначение. Классификация языков программирования. Словарь ключевых (зарезервированных) слов (символов).




      1. Формальные грамматики

Определение и назначение формальной грамматики. Иерархия формальных грамматик. Выбор грамматик для языков программирования. Метаязык. Бэкус-Науровая форма (БНФ). Назначение БНФ. Основные обозначения. Терминальные и нетерминальные символы. Рекурсивный метод построения предложений. Нисходящий и восходящий синтаксический анализ. Грамматики LL(1), и LR(0), LR(1). Особенности LL и LR - анализа. Примеры разбора предложений.


      1. Процесс трансляции

Определение транслятора. Этапы, фазы и проходы трансляции. Проектирование современных трансляторов. Интегрированные среды программирования (Integrated Development Environment - IDE). Назначение универсального промежуточного языка.




      1. Этапы трансляции. Генерация кода

Лексический анализ – сканер. Определение лексемы. Типы лексем, внешний и внутренний форматы. Синтаксический и семантический анализ. Различные типы промежуточного кода. Оптимизация машинно-независимого и машинного кодов.




      1. Проектирование языковых интерпретаторов

Определение. Особенности проектирования интерпретаторов. Алгебраические выражения. Определение приоритетов операций. Построение анализатора простых выражений Рекурсивно-нисходящий алгоритм разбора выражений. Принципы программной реализации интерпретаторов. Пример построения программного модуля разбора выражений и интерпретатора команд.


4.3. Содержание практических занятий
1. Создание файла проекта в интегрированной среде Borland С++. (30 часов)

2. Расширение списка команд Small BASIC. (20 часов)

3. Построение рекурсивных функций на языке С++. (20 часов)
5. Образовательные технологии
В процессе изучения дисциплины используются:
• раздаточный материал для изучения лекционного материала;

• учебный материал в электронном виде;

• контрольные программы по курсу для подготовки к сдаче семестровой аттеста-

ции и экзамена;

• программное обеспечение в соответствии с содержанием дисциплины;
6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины.
6.1. Перечень заданий для самостоятельной работы и проведения текущего контроля.
1. Определение языка программирования

2. Формальные грамматики

3. Процесс трансляции

4. Лексический и синтаксический анализ

5. Семантический анализ

6. Генерация кодов


6.3. Перечень вопросов к промежуточной аттестации.
1.   Формальные языки. Словарь, цепочка. Способы определения языка, примеры.

  1. Порождающие грамматики Н. Хомского. Порождение предложений языка. Сентенции и сентенциальные формы.

  2. Дерево разбора. Эквивалентность и однозначность грамматик.

  3. Иерархия порождающих грамматик по Н. Хомскому.

  4. Автоматные грамматики и конечные автоматы. Построение и преобразование графа переходов конечного автомата для заданной автоматной грамматики.

  5. Использование конечного автомата для распознавания автоматного языка.

  6. Синтаксические диаграммы автоматной грамматики.

  7. Регулярные выражения и регулярные множества. Эквивалентность регулярных выражений и автоматных грамматик.

  8. Контекстно-свободные грамматики. Однозначность КС-грамматики. Левосторонний и правосторонний вывод. Нисходящий и восходящий разбор КС-языков. Общий алгоритм распознавания КС-языков. Самовложение в КС-грамматиках.

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

  10. Требование детерминированного распознавания. LL(k) и LL(1) - грамматики. Левая и правая рекурсия.

  11. Грамматика и синтаксический анализ арифметических выражений.

  12. Включение действий в синтаксис. Семантические процедуры.

  13. Табличный LL(1) – анализатор.

  14. Польская запись выражений. Алгоритм вычисления выражений в польской записи.

  15. Перевод арифметических выражений в польскую запись.

  16. Метод стека с приоритетами трансляции выражений в польскую запись (алгоритм Э. Дейкстры).

  17. Интерпретация выражений.

  18. Лексический анализатор.

  19. Таблицы транслятора. Области действия имен.

  20. Виртуальная машина для простого языка.

  21. Трансляция описаний. Распределение памяти для переменных.

  22. Трансляция выражений.

  23. Трансляция операторов.

  24. Трансляция процедур без параметров.

  25. Трансляция процедур с параметрами-значениями и локальными переменными.

  26. Трансляция процедур-функций.

  27. Генерация кода для параметров-переменных.

  28. Трансляция линейных массивов.

  29. Язык ассемблера для виртуальной машины.

  30. Конструкция простого двухпроходного ассемблера.

  31. Автоматизация построения и мобильность трансляторов.

7. Учебно-методическое и информационное обеспечение дисциплины
а) основная литература:

  1. Алгоритмический язык Алгол-60. Модифицированное сообщение. М., Мир, 1982

  2. Вирт Н. Алгоритмы + структуры данных = программы. М., Мир, 1985

  3. Вирт Н. Программирование на языке Модула-2. М., Мир

  4. Грис Д. Конструирование компиляторов для цифровых вычислительных машин. М. Мир, 1975

  5. Джермейн К. Программирование на IBM/360. М., Мир, 1978 (описания языков Кобол, ПЛ/1 и Фортран)

  6. Джехани Н. Язык Ада. М., Мир, 1988

  7. Керниган Б. Ричи Д. Фьюэр Язык программирования Си. Задачи по языку Си. М., Финансы и статистика, 1985

  8. Кетков Ю. Л. Диалог на языке бейсик для мини- и микро-ЭВМ. М., Наука, 1988

  9. Лингер Р., Миллс Х., Уитт Б. Теория и практика структурного программирования. М., Мир, 1982

  10. Мёссенбёк Х. Вирт Н. Язык программирования Оберон-2. Институт компьютерных систем, ЕТН, Цюрих, 1996.

  11. Рейуорд-Смит В. Дж. Теория формальных языков. Вводный курс. М., Радио и связь, 1988

  12. Свердлов С. З. Введение в методы трансляции. Вологда, Русь, 1994

б) дополнительная литература

  1. N.Wirth. Theory and Techniques of Compiler Construction. Addison-Wesley, 1996.

  2. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. М., Мир, 1978

  3. Баррон Д. Введение в языки программирования. М., Мир, 1980

  4. Бек Л. Введение в системное программирование. М., Мир, 1988

  5. Дал У., Дейкстра Э., Хоор К. Структурное программирование. М., Мир, 1975

  6. Зелковиц М., Шоу А., Геннон Дж. Принципы разработки программного обеспечения. М., Мир, 1982

  7. Кауфман В. Ш. Языки программирования. Концепции и принципы. М., Радио и связь, 1993

  8. Лебедев В. Н. Введение в системы программирования. М., Статистика, 1975

  9. Пратт Т. Языки программирования: разработка и реализация. М., Мир, 1979

  10. Язык компьютера. М., Мир, 1989

8. Материально-техническое обеспечение дисциплины
Для обеспечения данной дисциплины необходим компьютерный класс, соответствующаий действующим санитарным и противопожарным нормам, оборудованный вычислительными средствами (ПЭВМ) с установленным программным обеспечением.

Похожие:

Программа дисциплины «Теория языков программирования и методы трансляции» iconЛабораторная работа для студентов специальности пвс по курсу «Теория языков программирования и методы трансляции»
Наиболее трудоёмким по затратам машинного времени является этап лексического анализа. Для сокращения общего времени трансляции и...
Программа дисциплины «Теория языков программирования и методы трансляции» iconМетодические указания по выполнению лабораторных работ по дисциплине "Теория языков программирования и методы трансляции"
Целью работы является получение практических навыков по составлению правил грамматики и проверка их правильности путём моделирования...
Программа дисциплины «Теория языков программирования и методы трансляции» iconУчебная программа Дисциплины б8 «Языки программирования»
Правила и приемы использования языков программирования, рассмотренные в лекционном курсе, используются в рамках лабораторных занятий...
Программа дисциплины «Теория языков программирования и методы трансляции» iconПрограмма дисциплины «Языки и методы программирования»
Целью дисциплины является ознакомление студентов с основными принципами и методами решения задач программирования с использованием...
Программа дисциплины «Теория языков программирования и методы трансляции» iconУчебная программа Дисциплины б6 «Теория автоматов и формальных языков»
Целью преподавания дисциплины «Теория автоматов и формальных языков» является подготовка специалистов к деятельности в сфере разработки,...
Программа дисциплины «Теория языков программирования и методы трансляции» iconРабочая программа дисциплины методы трансляции и компиляции (наименование дисциплины)
Фгос впо к структуре и результатам освоения основных образовательных программ бакалавриата по «Профессиональному» циклу по направлению...
Программа дисциплины «Теория языков программирования и методы трансляции» iconТеория автоматов и формальных языков
Настоящий курс ставит своей целью ознакомление обучаемых с устройством теории формальных языков, а также с основными принципами,...
Программа дисциплины «Теория языков программирования и методы трансляции» iconВопросы для подготовки к экзамену по спецкурсу "теория алгоритмических языков и методы трансляции"
...
Программа дисциплины «Теория языков программирования и методы трансляции» iconПрограмма дисциплины "технология программирования" Рекомендуется Министерством образования РФ для направления подготовки
Цель преподавания дисциплины "Технология программирования" – изучение теоретических основ современных технологий программирования...
Программа дисциплины «Теория языков программирования и методы трансляции» iconА. И. Еникеев языки программирования и методы трансляции
Оксфордском университе Великобритании,охарактеризовали в одной из своих публикаций текущее состояние разработок и исследований
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org