ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет вычислительной техники Кафедра систем автоматизации проектирования
"Ут...
61 downloads
214 Views
203KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Факультет вычислительной техники Кафедра систем автоматизации проектирования
"Утверждаю" Декан ФВТ ________________ Б.Д.Шашков "____" _______________ 2002 г.
Рабочая программа дисциплины
Лингвистическое и программное обеспечение САПР
по подготовке дипломированного специалиста по направлению 654600 специальности 220300
Программу разработал
к.т.н., доцент ______________ И.Г.Кревский
Программа одобрена на заседании кафедры САПР, протокол № ___ от "___" _______ 2002r. Зав.кафедрой САПР
Согласовано: Председатель НМК ФВТ
д.т.н., профессор _______________ А.М.Бершадский _______________ д.т.н., профессор П.П.Макарычев
Программа разработана в соответствии со следующими документами: —— Государственным образовательным стандартом Минобразования РФ по направлению подготовки 654600 и специальности 220300; ——рабочим учебным планом Пенз.ГУ по специальности 220300;
1 .Цели и задачи дисциплины. Целью дисциплины является изучение и практическое освоение способов организации программного обеспечения САПР, технологий структурного и объектно-ориентированного программирования, теоретических основ и методов разработки трансляторов с языков САПР. 2. Требования к уровню освоения содержания дисциплины. В результате изучения дисциплины студенты должны: - знать: основные способы построения транслирующих программ; основные способы формального определения синтаксиса языка; основы проектирования синтаксических анализаторов и методы грамматического разбора; организацию программного обеспечения САПР; типовые структуры описания абстрактных данных; методы программной обработки данных; -уметь: использовать язык С++ для написания трансляторов, программ обработки математических структур; -иметь опыт: разработки трансляторов на основании формального определения заданного языка; -иметь представление: об организация диалога в САПР; о технологиях структурного и объектно-ориентированного программирования. 3. Объем дисциплины и виды учебной работы Вид учебной работы Общая трудоемкость дисциплины Аудиторные занятия Лекции Лабораторные работы (ЛР) Самостоятельная работа, в т.ч. курсовая работа Вид итогового контроля (экзамен, зачет)
Всего часов 238 153 85 51 17(17)
Семестр 4 119 68 34 34
5 119 85 51 17 17(17)
зач.
экз.
4. Содержание дисциплины 4.1. Разделы дисциплины и виды занятий N п\п
Раздел дисциплины
к-во часов Лекции
1.
Введение. Организация программного обеспечения САПР. Основные понятия лингвистического обеспечения.
2
2.
Введение в язык С++.
12
3.
Структура программ
4.
Л.р.
Сам.р.
12
*
4
*
Методы формального определения синтаксиса языка
6
2, *
5.
Регулярные грамматики и лексический анализ
4
8
3, *
6.
Контекстно-свободные грамматики и синтаксический анализ
10
14
6, *
7.
Формирование постфиксной записи и генерация кода
6
10
6, *
8.
Классификация языков САПР. Основы языка VHDL.
10
9.
Программирование математических структур методы программной обработки данных
и
основные
типы
транслирующих
*
и
15
4
*
10. Введение в технологии структурного и объектноориентированного программирования.
14
3
*
11. Заключение
2
51
17
ИТОГО:
85
* - Внеаудиторная самостоятельная работа в объеме 85 часов отводится на подготовку к лабораторным работам, оформление отчетов, выполнение курсового проекта. 4.2. Содержание разделов дисциплины 1. Цели и задачи дисциплины, ее место среди других дисциплин учебного плана. Структура и содержание дисциплины, методика преподавания. Организация программного обеспечения САПР. Основные понятия лингвистического обеспечения. 2. Основные понятия С++. Составные части программы на С++. Переменные и константы.
Выражения и операторы. Функции. Циклы. Ссылки и указатели. 3. Структура и основные типы транслирующих программ. Компиляторы, интерпретаторы, конверторы, кросс-компиляторы. Число проходов трансляции. 4. Синтаксис и семантика языка. Формальные языки и грамматики. Иерархия Хомского. Проблема разбора. Форма Бэкуса-Наура, синтаксический граф, дерево разбора. 5. Идентификация лексем формальных языков. Регулярные выражения. Проектирование лексических анализаторов. Регулярные грамматики и конечные автоматы. Автоматные грамматики. 6. Контекстно зависимые и контекстно свободные грамматики. Проектирование синтаксических анализаторов. Методы грамматического разбора. Грамматический разбор "сверху вниз" и "снизу вверх". Левосторонний и правосторонний вывод. 7. Постфиксная запись. Формирование постфиксной записи для выражений и для операторов. Промежуточные формы записи. Четверки. Генерация кода. 8. Классификация языков САПР. Языки проектирования САПР (входные и выходные). Основы языка VHDL. Интерфейс и архитектурные тела. Операции и типы данных. Классы объектов. Атрибуты. Пакеты. Процедуры и функции. 9. Типовые структуры описания абстрактных данных (массив, стек, очередь, двоичное дерево). Программирование математических структур (матрицы и конечные графы). Методы программной обработки данных. Итерация и рекурсия. Сортировка и поиск. Криптообработка и сжатие данных. Перечисление и упорядочивание комбинаторных объектов. Ввод-вывод данных. Обработка файлов. 10. Технологии структурного и объектно-ориентированного программирования. Конструирование абстрактных типов данных. Инкапсуляция данных и методов их обработки в классах объектов. Иерархия классов. Базовые и производные классы. Простое и множественное наследование. Перегрузка методов и операций обработки данных в классах объектов. Абстрактные классы. Полиморфная обработка данных. Виртуальные интерфейсы. Параметризация типов данных в классах и функциях. Компиляция и редактирование связей. Верификация и отладка программы. Программная документация. Организация диалога в САПР. Виды диалога. Стандарты пользовательского интерфейса. 11. Заключение. Инструментальные средства разработки программного обеспечения САПР. Автоматизация разработки программных проектов.
5. Лабораторный практикум .№-№ п/п
№ раздела дисциплины
Наименование лабораторных работ
К-во часов
1 1.
2 2
3 Лабораторные работы по основам языка С++
4 12
2.
5
Разработка лексического анализатора
8
3.
6
Разработка синтаксического анализатора
14
4.
7
Формирование постфиксной записи
6
5.
7
Разработка программы генерации кода
4
6.
9
Программирование математических структур и методы программной обработки данных.
4
7.
10
Создание и использование классов
3
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. Эллис М., Страуструп Б., Справочное руководство по языку программирования С++ с комментариями : Пер.с англ. – М.: Мир, 1992 12. Страуструп Б. Язык программирования Си++: Пер.с англ. – М.: Радио и связь, 1991. 13. Либерти Д. Освой самостоятельно С++ за 21 день: пер.с англ.: Уч.пос. - М.: Издательский дом «Вильямс», 2001. – 816 с.
9. Переутверждение программы на очередной учебный год. Учебный Учебные Решение кафедры № Решение год группы протокола, дата, выпускающей подпись зав. кафедры № кафедрой протокола, дата, подпись зав. кафедрой
Лектор разработчик программы
Примечание: тексты изменений прилагаются. Разработчик программы:
к.т.н., доцент _______________ И.Г.Кревский
№ изменения