ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет вычислительной техники
Кафедра систем автоматизации проектирования
"Утверждаю"
Декан ФВТ
Б.Д.Шашков
"" _ 2002 г.
Рабочая программа дисциплины
Лингвистическое и программное обеспечение САПР по подготовке дипломированного специалиста по направлению 654600 специальности 220300 Программу разработал к.т.н., доцент И.Г.Кревский Программа одобрена на заседании кафедры САПР, протокол № _ от "_" _ 2002r.
Зав.кафедрой САПР д.т.н., профессор _ А.М.Бершадский Согласовано:
Председатель НМК ФВТ _ д.т.н., профессор П.П.Макарычев Программа разработана в соответствии со следующими документами:
—— Государственным образовательным стандартом Минобразования РФ по направлению подготовки 654600 и специальности 220300;
——рабочим учебным планом Пенз.ГУ по специальности 220300;
1.Цели и задачи дисциплины.
Целью дисциплины является изучение и практическое освоение способов организации программного обеспечения САПР, технологий структурного и объектно-ориентированного программирования, теоретических основ и методов разработки трансляторов с языков САПР.
2. Требования к уровню освоения содержания дисциплины.
В результате изучения дисциплины студенты должны:
- знать:
основные способы построения транслирующих программ;
основные способы формального определения синтаксиса языка;
основы проектирования синтаксических анализаторов и методы грамматического разбора;
организацию программного обеспечения САПР;
типовые структуры описания абстрактных данных;
методы программной обработки данных;
-уметь:
использовать язык С++ для написания трансляторов, программ обработки математических структур;
-иметь опыт:
разработки трансляторов на основании формального определения заданного языка;
-иметь представление:
об организация диалога в САПР;
о технологиях структурного и объектно-ориентированного программирования.
3. Объем дисциплины и виды учебной работы Вид учебной работы Всего часов Семестр 4 Общая трудоемкость дисциплины 238 119 Аудиторные занятия 153 68 Лекции 85 34 Лабораторные работы (ЛР) 51 34 Самостоятельная работа, в т.ч. курсовая 17(17) 17(17) работа Вид итогового контроля (экзамен, зачет) зач. экз.
4. Содержание дисциплины 4.1. Разделы дисциплины и виды занятий N п\п Раздел дисциплины к-во часов Лекции Л.р. Сам.р.
1. Введение. Организация программного обеспечения САПР. Основные понятия лингвистического обеспечения.
12 12 * 2. Введение в язык С++.
4 * 3. Структура и основные типы транслирующих программ 6 2, * 4. Методы формального определения синтаксиса языка 4 8 3, * 5. Регулярные грамматики и лексический анализ 6. Контекстно-свободные грамматики и синтаксический 7. Формирование постфиксной записи и генерация кода 8. Классификация языков САПР. Основы языка VHDL.
9. Программирование математических структур и методы программной обработки данных 10. Введение в технологии структурного и объектноориентированного программирования.
11. Заключение * - Внеаудиторная самостоятельная работа в объеме 85 часов отводится на подготовку к лабораторным работам, оформление отчетов, выполнение курсового проекта.
4.2. Содержание разделов дисциплины 1. Цели и задачи дисциплины, ее место среди других дисциплин учебного плана. Структура и содержание дисциплины, методика преподавания. Организация программного обеспечения САПР. Основные понятия лингвистического обеспечения.
2. Основные понятия С++. Составные части программы на С++. Переменные и константы.
Выражения и операторы. Функции. Циклы. Ссылки и указатели.
3. Структура и основные типы транслирующих программ. Компиляторы, интерпретаторы, конверторы, кросс-компиляторы. Число проходов трансляции.
4. Синтаксис и семантика языка. Формальные языки и грамматики. Иерархия Хомского.
Проблема разбора. Форма Бэкуса-Наура, синтаксический граф, дерево разбора.
5. Идентификация лексем формальных языков. Регулярные выражения. Проектирование лексических анализаторов. Регулярные грамматики и конечные автоматы. Автоматные грамматики.
6. Контекстно зависимые и контекстно свободные грамматики. Проектирование синтаксических анализаторов. Методы грамматического разбора. Грамматический разбор "сверху вниз" и "снизу вверх". Левосторонний и правосторонний вывод.
7. Постфиксная запись. Формирование постфиксной записи для выражений и для операторов. Промежуточные формы записи. Четверки. Генерация кода.
8. Классификация языков САПР. Языки проектирования САПР (входные и выходные).
Основы языка VHDL. Интерфейс и архитектурные тела. Операции и типы данных.
Классы объектов. Атрибуты. Пакеты. Процедуры и функции.
9. Типовые структуры описания абстрактных данных (массив, стек, очередь, двоичное дерево). Программирование математических структур (матрицы и конечные графы).
Методы программной обработки данных. Итерация и рекурсия. Сортировка и поиск.
Криптообработка и сжатие данных. Перечисление и упорядочивание комбинаторных объектов. Ввод-вывод данных. Обработка файлов.
10. Технологии структурного и объектно-ориентированного программирования.
Конструирование абстрактных типов данных. Инкапсуляция данных и методов их обработки в классах объектов. Иерархия классов. Базовые и производные классы.
Простое и множественное наследование. Перегрузка методов и операций обработки данных в классах объектов. Абстрактные классы. Полиморфная обработка данных.
Виртуальные интерфейсы. Параметризация типов данных в классах и функциях.
Компиляция и редактирование связей. Верификация и отладка программы. Программная документация. Организация диалога в САПР. Виды диалога. Стандарты пользовательского интерфейса.
11. Заключение. Инструментальные средства разработки программного обеспечения САПР.
Автоматизация разработки программных проектов.
6. Курсовая работа.
Разработка транслятора с заданного языка. Состав курсовой работы:
• пояснительная записка объемом 15 листов, включая представление реализуемого языка в виде БНФ, синтаксического графа и LL(1)-грамматики, • графическая часть - блок-схема алгоритма программы.
7. Материально-техническое обеспечение дисциплины.
Для обеспечения лабораторно-практических занятий необходим класс ПЭВМ и программное обеспечение VC++.
8. Рекомендуемая литература.
1. Вирт Н. Алгоритмы + структуры данных = программы. - М.: Мир, 1985.
2. Зелковиц М., Шоу А., Гэннон Дж. Принципы разработки программного обеспечения: Пер. с англ. - М.: Мир, 1982.
3. Хантер Р. Проектирование и конструирование компиляторов: Пер. с англ. - М.:
Финансы и статистика, 1984.
4. Грис Д. Конструирование компиляторов для цифровых вычислительных машин: Пер.
с англ. - М.: Мир, 1975.
5. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов: Пер. с англ. - М.: Мир, 1979.
6. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. В 2-х т.: Пер. с англ. - М.: Мир, 1978.
7. Системы автоматизированного проектирования в радиоэлектронике. Справочник /Е.В.Авдеев, А.Т.Еремин, И.П.Норенков, М.И.Песков; Под ред. И.П.Норенкова. - М.:
Радио и связь, 1986.
8. Ахо А., Сети Р.,Ульман Дж. Компиляторы: принципы, технологии и инструменты. :
Пер. с англ.. – М.: Издательский дом «Вильямс», 2001. – 768 с.
9. Аpмстpонг Дж.Р. Моделиpование цифpовых систем на языке VHDL: Пер.с англ./М.:
Мир, 1992.
10. Бибило П.Н. Основы языка VHDL – М., Солон-Р, 2000.
11. Эллис М., Страуструп Б., Справочное руководство по языку программирования С++ с комментариями : Пер.с англ. – М.: Мир, 12. Страуструп Б. Язык программирования Си++: Пер.с англ. – М.: Радио и связь, 1991.
13. Либерти Д. Освой самостоятельно С++ за 21 день: пер.с англ.: Уч.пос. - М.:
Издательский дом «Вильямс», 2001. – 816 с.
9. Переутверждение программы на очередной учебный год.
год группы протокола, дата, выпускающей разработчик изменения Примечание: тексты изменений прилагаются.