Главная
страница 1



Национальный исследовательский университет «Высшая школа экономики»
Программа дисциплины "Системное программное обеспечение" для направления 230100.01 "Информатика и вычислительная техника" подготовки специалистов





Правительство Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"

Факультет Информационных технологий и вычислительной техники

Программа дисциплины «Системное программное обеспечение»




для направления 230100.68 "Информатика и вычислительная техника" подготовки специалиста


Автор программы:

Карпов В.Э., к.т.н, доцент

vkarpov@hse.ru


Одобрена на заседании кафедры "Вычислительные системы и сети" «___»____________ 2012 г.

Зав. кафедрой Вишнеков А.В. ____________________

Рекомендована Комиссией по учебной

и учебно-методической деятельности МИЭМ НИУ ВШЭ «___»_________________ 20 г

Председатель Тумковский С.Р. _________________________

Утверждена УС МИЭМ НИУ ВШЭ «___»_____________20 г.

Ученый секретарь Симонов В.П. ________________________


Москва, 2012



Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения кафедры-разработчика программы.

1Область применения и нормативные ссылки


Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности.

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



Программа разработана в соответствии с:

  • Федеральным государственным образовательным стандартом высшего профессионального образования по направлению 230100.68 "Информатика и вычислительная техника" (квалификация "специалист");

  • Образовательной программой по направлению 230100.68 "Информатика и вычислительная техника" для подготовки специалистов по специализации "Вычислительные машины, комплексы, системы и сети";

  • Рабочим учебным планом университета по направлению 230100.68 "Информатика и вычислительная техника" подготовки специалистов по специализации "Вычислительные машины, комплексы, системы и сети", утвержденным в 2012 г.



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


Целью освоения дисциплины является изучение базовых принципов построения компиляторов и получение практических навыков написания компиляторов.

Задачи:

  • Изучение общих принципов построения компиляторов.

  • Изучение основных методов и алгоритмов лексического и синтаксического анализа.

  • Разработка интерпретатора языка высокого уровня.

3Компетенции обучающегося, формируемые в результате освоения дисциплины


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

  • Знать:

  • мировые тенденции развития вычислительной техники и информационных технологий (ПК 1);

  • тенденции развития функций и архитектур программных систем и комплексов;

  • методы, способы и средства разработки программ (ПК 5);

  • методы организации работы в коллективах разработчиков ПО, направления развития методов и программных средств коллективной разработки ПО (ПК 7);

  • принципы организации и архитектуру базовых компонент системного программного обеспечения;

  • теоретические основы классической теории компиляторов;

  • принципы организации и архитектуры компиляторов;

  • последовательность и этапы создания компиляторов;

  • современные методики синтеза и оптимизации структур компиляторов;

  • основы формальных грамматик;

  • методики оптимизации программ.

  • Уметь:

  • находить, анализировать и обрабатывать научно-техническую информацию, полученную в результате проектирования и реализации ПО (ОК 2);

  • работать в команде разработчиков ПО, применять знания, полученные в результате изучения дисциплины, на практике (ОК 4);

  • грамотно использовать терминологию, принятую в данной области;

  • извлекать полезную научно-техническую информацию из электронных библиотек, реферативных журналов, сети Интернет (ОК 6);

  • создавать простые интерпретаторы языков высокого уровня;

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

  • Иметь навыки:

  • совершенствования и развития своего интеллектуального и общекультурного уровня (ОК 1);

  • самостоятельного обучения новым методам исследования (ОК 2);

  • применения перспективных методов исследования и решения профессиональных задач на основе знания мировых тенденций развития вычислительной техники и информационных технологий (ПК 1);

  • использования основных методов, способов и средств получения, хранения, переработки информации, навыки работы с компьютером как средством управления информацией;

  • использования современных операционных систем, операционных и сетевых оболочек, сервисных программ;

  • выбора архитектуры современных компьютеров, систем, комплексов и сетей;

  • выбора, проектирования, реализации, оценки качества и анализа эффективности программного обеспечения для решения задач в различных предметных областях;

  • использования методов проектирования сложных систем;

  • программирования на языке Пролог;

  • применения методов анализа искусственных языков.

4Место дисциплины в структуре образовательной программы


Настоящая дисциплина относится к циклу специальных дисциплин и блоку дисциплин по выбору.

Перед изучением дисциплины студент должен знать основы информатики и программирования, архитектуры вычислительных систем, операционных систем и сетей, основы математической логики, теории автоматов, теории алгоритмов и дискретной математики. Дисциплина является предшествующей для дисциплин "Информационные системы", "Организация высокопроизводительных систем" и "Управление прикладными информационными системами"


5Тематический план учебной дисциплины




Название раздела

Всего часов

Аудиторные часы

Самостоятельная
работа

Лекции

Семи-нары

Лаб. работы



Введение. Основные понятия и определения

15

10

5









Теоретические основы классической теории компиляторов

91

24

12

17

38



Интерпретаторы

22

6

6




10



Отладчики и макропроцессоры

22

6

5




10



Загрузчики и компоновщики

22

5

6




10




Итого:

170

51

34

17

68



6Формы контроля знаний студентов


Тип контроля

Форма контроля

1 год

2 год

Параметры **

3

4

1

2

Текущий

Контрольная работа







*




Письменная работа на 40 минут

Домашние задания

*




*




Письменные работы

Промежуточный

Экзамен




*







Устный экзамен, на подготовку отводится 60 минут.

Итоговый

Зачет










*

Устный зачет; проводится в форме защиты курсового проекта; время на подготовку не предоставляется. Проводится по мере готовности к защите, но не позднее окончания сессии. К защите представляется отчет по курсовому проекту.



6.1Критерии оценки знаний, навыков




На промежуточном контроле в ходе экзамена студент должен продемонстрировать:

  • знание профессиональной терминологии (ИК-Б2.1_2.2._2.4.1);

  • использование полученной информации при решении профессиональных задач (СК-Б6);

  • знание теоретических основ классической теории компиляторов (формальных языков, регулярных и контекстно-зависимых грамматик, конечных автоматов, организации таблиц символов и матриц переходов);

  • знание принципов организации и архитектуры компиляторов;

  • знание последовательности и этапы создания компиляторов;

  • знание современных методик синтеза и оптимизации структур компиляторов;

  • знание методик оптимизации программ;

  • знание базовых алгоритмов и методов теории компиляторов.

На итоговом контроле в процессе защиты курсового проекта студент должен продемонстрировать:

  • знание профессиональной терминологии, умение оформлять техническую документацию на проект (ИК-Б2.1_2.2._2.4.1);

  • использование полученной информации при решении профессиональных задач (СК-Б6);

  • умение проектировать и реализовывать интерпретатор или транслятор языка программирования высокого уровня;

  • способность оценивать полученные решения, обосновывать их рациональность (ИК-Б1.1).

Оценки по всем формам текущего контроля выставляются по 10-ти балльной шкале.


6.2Порядок формирования оценок по дисциплине


Накопленная оценка за 1-й этап (3-й модуль) учитывает результаты сдачи домашнего задания и равна оценке за домашнее задание:

Онакопл.1 этапа = Од/з

Преподаватель оценивает работу студентов на практических и лабораторных занятиях: наличие подготовленных дома файлов с решениями (Оподг) и качество выполнения лабораторных работ. Накопленная оценка по 10-ти балльной шкале за аудиторную работу определяется перед промежуточным контролем – Оаудиторная.

Оаудиторная = 0.9* Окач. + 0.1* Оподг

Промежуточная оценка за 2-й этап (в 4-м модуле) равна оценке, полученной по результатам выполнения лабораторных работ:

Опромежут. 2 этапа = 0.6*Оаудиторная + 0.4*Онакопл.1 этапа

Способ округления промежуточной оценки текущего контроля: арифметический.

Итоговая оценка за 2-й этап выставляется по результатам экзамена и рассчитывается следующим образом:

Оитог.2 этапа = 0.4*Онакопл.2 этапа + 0.6*Оэкзам

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

Промежуточная оценка за 3-й этап (в 1-м модуле) учитывает результаты сдачи домашнего задания и решения контрольной работы и рассчитывается следующим образом:

Опром.3 этапа = 0.5*Оконтр + 0.5*Од/з

Накопленная оценка Онакопл.4 этапа за 4-й этап (во 2-м модуле) равна оценке за качество выполнения курсового проекта Ок/п. Итоговая оценка за 4-й этап выставляется по результатам защиты на зачете и рассчитывается следующим образом:



Оитог.4 этапа = (Опром.3 этапа + Онакопл.4 этапа)/2

Все оценки выставляются по 10-ти балльной шкале.

На зачете студент может получить дополнительный вопрос, ответ на который оценивается в 1 балл. Возможность повторной защиты курсового проекта не предусматривается.

В диплом выставляет результирующая оценка, которая равна итоговой оценке за 4-й этап. Способ округления результирующей оценки по учебной дисциплине: арифметический.



ВНИМАНИЕ: оценка за итоговый контроль блокирующая, при неудовлетворительной итоговой оценке она равна результирующей.

7Содержание дисциплины


  1. Введение. Предмет курса и его связь со смежными дисциплинами. Архитектура ЭВМ. История развития вычислительной техники. Первые автоматически управляемые вычислительные машины.

Организация памяти. Элементная база ЭВМ. Структура и принципы организации машин фон-неймановской архитектуры. Современные тенденции развития вычислительной техники. Машины не-фон-Неймановской архитектуры. Параллельные машины. Нейрокомпьютеры. Машины искусственного интеллекта.

Основные понятия и определения. Терминология. Ассемблер и автокод. Логическая структура компилятора. Процесс компиляции. Основные части компилятора. Понятие синтаксического и семантического анализа. Многопроходные компиляторы.



Литература:

  1. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты.: Пер. с англ. – М.: Издательский дом "Вильямс", 2003. –768 с.

  2. Карпов В.Э. Теория компиляторов. Учебное пособие — Московский государственный институт электроники и математики. М., 2003. – 80 с.




  1. Теоретические основы классической теории компиляторов

Формальные системы и языки программирования. Принципы описания и задания языков. Формальные грамматики. Иерархия Хомского. Регулярные и ОК-грамматики. Форма Бэкуса-Наура.

Регулярные грамматики и конечные автоматы. Формальное определение. Детерминированные и недетерминированные конечные автоматы. Построение ДКА по НКА. Программирование сканера. Регулярные выражения и конечные автоматы. Структура сканера.

Организация таблиц символов. Хеш-функции, хеш-адресация. Способы решения задачи коллизии. Рехеширование.

Контекстно-свободные грамматики. ОК-грамматики. Синтаксический анализ и генерация промежуточных форм представления программы. Схема синтаксически управляемого перевода. Автоматы с магазинной памятью. Операторные грамматики (грамматики простого предшествия).

Матрицы переходов.

Внутренние формы представления исходной программы. Польская форма. Тетрады.

Оптимизация программ. Виды оптимизации. Оптимизация линейных участков, циклов и условий. Оптимизация булевых выражений. Особенности оптимизационных процедур.

Литература:


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

  2. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты.: Пер. с англ. – М.: Издательский дом "Вильямс", 2003. –768 с.

  3. Карпов В.Э. Теория компиляторов. Учебное пособие — Московский государственный институт электроники и математики. М., 2003. – 80 с.




  1. Интерпретаторы.

Принципы построения. Особенности интерпретируемых языков. Компиляторы компиляторов.

    Генерация объектного кода. Генерация кодов арифметических выражений. Система адресации. Объектный язык. Регистры. Модификация адресов. Основные конструкции и алгоритмы.

Литература:

  1. Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты.: Пер. с англ. – М.: Издательский дом "Вильямс", 2003. –768 с.

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

  3. Хантер Р. Проектирование и конструирование компиляторов. — М.: Финансы и статистика, 1984. 232 с.



  1. Отладчики и макропроцессоры.

Общие принципы отладки программ. Технологии отладки.

Трассировка и контрольные точки. Отладка в интегрированных средах.



    Макросы. Макрокомады и макроопределения. Макроязык и макропроцессор.

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



Литература:

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

  2. Хантер Р. Проектирование и конструирование компиляторов. — М.: Финансы и статистика, 1984. 232 с.



  1. Загрузчики и компоновщики.

    Принципы организации памяти. Выделение памяти различным типам данных. Динамическое распределение.

    Схемы загрузки. Абсолютные и настраивающие загрузчики. Связывание подпрограмм.

    Принципы проектирования загрузчиков. Алгоритм работы загрузчика.

    Компоновщики.



Литература:

  1. Хантер Р. Проектирование и конструирование компиляторов. — М.: Финансы и статистика, 1984. 232 с.

  2. Карпов В.Э. Теория компиляторов. Учебное пособие — Московский государственный институт электроники и математики. М., 2003. – 80 с.


Разделы дисциплин и виды занятий

№ п/п

Наименование раздела дисциплины

Лекц.

Практ.

зан.


Лаб. раб.

СРС

1.

Введение. Основные понятия и определения

+










2.

Теоретические основы классической теории компиляторов.

+




+







Формальные системы и языки программирования.

+




+







Регулярные грамматики. Конечные автоматы.

+




+

+




Организация таблиц символов.

+







+




Контекстно-свободные грамматики.

+




+

+




Матрицы переходов.

+







+




Внутренние формы представления исходной программы.

+




+

+




Оптимизация программ.

+




+

+

3.

Интерпретаторы. Принципы построения.

+

+




+

4.

Отладчики и макропроцессоры.

+

+




+




Структура объектной программы.

+

+




+

5.

Загрузчики и компоновщики.

+

+




+


8Образовательные технологии


В рамках учебного процесса по дисциплине будут реализованы традиционные (лекции, семинары, лабораторные работы, демонстрации, объяснения) и активные методы обучения:

 дискуссионные (групповое обсуждение проблемы, анализ практических ситуаций),

 тренинговые (выработка практических умений при возникновении стандартных и исключительных ситуаций),

 индивидуальные (самостоятельное обучение, поисковая работа).


8.1Методические рекомендации преподавателю


Выдавать задания на лабораторные работы заранее и предлагать студентам приходить на занятия с подготовленным вариантом решения задания. Занятия на лабораторных работах ведутся в дисплейном классе.

8.2Методические указания студентам


Вести рабочую тетрадь с проработкой и заметками по изучаемым вопросам.

Готовиться дома к практическим занятиям и приходить на занятия с подготовленными вопросами по изучаемой теме.

Для лучшего усвоения материала перед каждой лекцией знакомиться с лекционным материалом, который доступен в электронном виде на сайте rema44.ru. А после лекции самостоятельно изучать указанные материалы учебников и по всем возникающим вопросам консультироваться лично у преподавателя в часы занятий, консультаций или по электронной почте.

9Оценочные средства для текущего контроля и аттестации студента

9.1Тематика заданий текущего контроля


Темы контрольных работ:

  1. Конечные автоматы. Построение грамматики и детерминированного конечного автомата по заданному недетерминированному конечному автомату. Написание моделирующей Пролог-программы.

  2. Синтаксические анализаторы. Перевод заданного выражения в польскую форму записи:

  • методом синтаксически управляемого перевода,

  • методом автомата с магазинной памятью,

  • с помощью операторных грамматик.

  1. Создание грамматики языка по заданному фрагменту программы; формирование матрицы переходов; реализация семантических процедур; создание эквивалентной исходному фрагменту польской формы и/или набора тетрад; реализация синтаксического анализатора на языке Пролог.


Тематика лабораторного практикума:


№ п/п

№ раздела дисциплины

Наименование лабораторных работ

Часы

8 семестр

1

1

Основы языка Пролог. Среда программирования.

3

2

1, 3

Основные конструкции. Поисковые задачи.

6

3

4

Реализация конечного автомата на языке Пролог.

4

4

6, 8

Синтаксический анализатор и генератор польской формы записи.

4

Итого

17

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



9.2Примерная тематика курсовых проектов


Курсовой проект выполняется в соответствии с методическими указаниями по курсовому проектированию. Он включает в себя проектирование и реализацию интерпретатора или транслятора языка программирования высокого уровня по одному из указанных или самостоятельно выбранных вариантов.

Кроме того, предлагаются следующие темы работ:



  1. Интерпретатор специализированного языка программирования.

  2. Транслятор специализированного языка программирования.

  3. Модель многопроцессорной системы

  4. Двоичный компилятор.



10Учебно-методическое и информационное обеспечение дисциплины

10.1Базовый учебник


Ахо А., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструменты.: Пер. с англ. – М.: Издательский дом "Вильямс", 2003. –768 с.

10.2Основная литература


  1. Карпов В.Э. Теория компиляторов. Учебное пособие. – Московский государственный институт электроники и математики. М., 2003. – 80 с.

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

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

  4. Хантер Р. Проектирование и конструирование компиляторов. — М.: Финансы и статистика, 1984. 232 с.

10.3Дополнительная литература


  1. Донован Дж. Системное программирование. / Пер. с англ. – М.: Мир, 1975.

  2. Бадд Тимоти. Объектно-ориентированное программирование в действии / Пер. с англ. – СПб.: Питер, 1997. – 464 с.

  3. Л. Стерлинг, Э. Шапиро. Искусство программирования на языке Пролог. – М.: Издательство "Мир", 1990.

  4. Малпас Дж. Реляционный язык Пролог и его применение. – М.: Издательство "Наука", 1990.

  5. Братко Иван. Алгоритмы искусственного интеллекта на языке PROLOG — М.: Вильямс, 2004. – 640 с. 

  6. Ин Ц.,  Соломон Д.  Использование Турбо-Пролога :  Пер. с англ. – М.: Мир, 1990.

  7. Марселлус Д. Программирование экспертных систем на Турбо-Прологе. – М.: Финансы и статистика, 1994. – 256 с.

  8. Материалы сайта citforum.ru.

10.4Справочники, словари, энциклопедии


  1. Электронная энциклопедия Википедия (wikipedia.org).

  2. http://rema44.ru

10.5Программные средства


Для успешного освоения дисциплины студент использует следующие программные средства:

  • MS Visual Studio / Microsoft Visual C++.

  • PDC Prolog/Visual Prolog.

  • Dev-C++ —интегрированная среда разработки приложений.

10.6Дистанционная поддержка дисциплины


Дополнительные учебно-методические материалы по дисциплине расположены по адресу http://rema44.ru/resurs/students/karpov в свободном доступе.

11Материально-техническое обеспечение дисциплины


  1. Компьютерный класс, оборудованный для проведения практических и лабораторных работ персональными компьютерами, объединенными в сеть с выходом в Интернет.

  2. Установленное лицензионное программное обеспечение.




Смотрите также:
Программа дисциплины "Системное программное обеспечение" для направления 230100. 01 "Информатика и вычислительная техника"
198.38kb.
1 стр.
Рабочая программа по дисциплине: системное программное обеспечение (федеральный компонент блока сд) Направление подготовки: 230100 «Информатика и вычислительная техника»
128.98kb.
1 стр.
Программа дисциплины Системы искусственного интеллекта  Для направления 230100 «Информатика и вычислительная техника»
130.76kb.
1 стр.
Программа практики производственная практика для направления: 230100. 62 Информатика и вычислительная техника
248.44kb.
1 стр.
Программа учебной дисциплины "Проектирование корпоративных информационных систем" для подготовки
207.94kb.
1 стр.
Программа учебной дисциплины "Архитектура корпоративных информационных систем" для подготовки
204.71kb.
1 стр.
Рабочая программа дисциплины человеко-машинное взаимодействие
163.24kb.
1 стр.
Рабочая программа учебной дисциплины операционные системы ооп: 230100. 62 Информатика и вычислительная техника
268.65kb.
1 стр.
П. Ф. Лесгафта г. Санкт-Петербург Л. А. Заварухина информатика (лекции) Санкт-Петербург 2009 Содержание лекция
594.84kb.
4 стр.
Программа дисциплины «Системное программное обеспечение»
246.8kb.
1 стр.
Перечень циклов, дисциплин и разделов направления 230100 «информатика и вычислительная техника»
42.37kb.
1 стр.
Программа учебной дисциплины "эвм и периферийные устройства" для подготовки
256.7kb.
1 стр.