Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Программа дисциплины

СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

 

 

1. ЭЛЕМЕНТЫ СИСТЕМНОГО ПРОГРАММИРОВАНИЯ [1, 6]

Компоненты системного программного обеспечения.

Критерии качества программ.

Связывание, время связывания. Статическое и динамическое связывание.

Мобильность программного обеспечения и концепция открытых систем.

2. ЯЗЫКИ ПРОГРАММИРОВАНИЯ [1]

Язык, его описание и реализация. Метаязык. Жизненный цикл и критерии оценки языка. Компоненты языка программирования. Эволюция технологии и языков программирования [9].

Макроязыки и макропроцессоры. Макросредства языка C. Макросредства языка ассемблера IBM PC [6].

3. ЯЗЫКИ, ГРАММАТИКИ И АВТОМАТЫ [1]

Метаязыки: БНФ, МБНФ, синтаксические диаграммы.

Формальные языки и грамматики. Порождающая грамматика. Вывод строки. Задача разбора. Классификация языков и грамматик.

Конечный и магазинный автоматы. Распознаватели и преобразователи.

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

Конечные автоматы. Автоматы с магазинной памятью. Построение автомата по заданной грамматике.

4. ТРАНСЛЯТОРЫ [1 - 3]

Транслятор. Типы трансляторов. Этапы трансляции. Компоненты транслятора. Лексический анализ. Синтаксический и семантический анализ. Генерация и оптимизация кода. Структура компиляторов и интерпретаторов. Ассемблер.

Способы записи выражений. Трансляция постфиксного и инфиксного выражения. Метод стека с приоритетами. Метод рекурсивного спуска.

5. СИСТЕМЫ ПРОГРАММИРОВАНИЯ [1 - 3]

Структура и компоненты современных систем программирования. Загрузчики, функции загрузчика, настраивающий и динамический загрузчики. Компоновщик. Библиотеки подпрограмм. Статическое и динамическое подключение библиотек. Ресурсы пользовательского интерфейса. Тенденции развития систем программирования.

Учебная система программирования С0. Входной язык и использование компилятора С0. Язык ассемблера IBM PC. Объектный код компилятора С0. Структура и методы трансляции в компиляторе С0.

 

ТИПОВЫЕ ВОПРОСЫ И ЗАДАЧИ

(см. [1, 2, 3 Упражнения и задачи])

 

1. Описать на метаязыке МБНФ (БНФ, синтаксических диаграмм) синтаксис входного текста заданного вида (дано словесное описание структуры текста).

2. Составить на заданном метаязыке (МБНФ, БНФ, синтаксических диаграмм) правила грамматики, эквивалентной грамматике, заданной на другом из перечисленных выше метаязыков.

3. Указать терминальные и нетерминальные символы и аксиому грамматики, заданной правилами.

4. Определить, к какому типу по классификации Н. Хомского относится заданная грамматика.

5. Привести пример предложения длиной не менее пяти символов для языка, определенного заданной грамматикой. Привести вывод этого предложения и дерево этого вывода.

6. Построить автомат-распознаватель для языка, заданного словесно или грамматикой.

7. Составить грамматику, описывающую язык, заданный конечным автоматом.

8. Составить С0-программу для решения заданной задачи.

9. Написать объектный код заданного оператора языка С0.

10. Построить дерево грамматического разбора заданного оператора языка С0.

11. Составить макроопределение для заданного макроса и его расширения на макроязыке С или языка ассемблера IBM PC.

 

Примеры задач [1 с. 70]

 

1. Указать терминальные и нетерминальные символы и аксиому грамматики с заданными правилами (для грамматик из примеров 3.1 – 3.4).

2. Привести три примера предложений длиной не менее пяти символов для языка, определенного заданной грамматикой. Привести вывод этих предложений и изобразить соответствующее дерево разбора (для грамматик из примеров 3.1 – 3.4).

3. Описать в виде формальной грамматики или на метаязыке МБНФ (БНФ, синтаксических диаграмм) синтаксис входного текста заданного вида.

а) Целое десятичное число, перед которым может быть знак + или -.

б) Строка из нулей и единиц, содержащая нечетное число единиц.

в) Строка из правильно расставленных открывающих и закрывающих скобок, например: (() ()).

4. Составить в виде формальной грамматики или на заданном метаязыке (МБНФ, БНФ, синтаксических диаграмм) правила грамматики, эквивалентной грамматике, заданной на другом из перечисленных выше метаязыков (для грамматик из примеров 3.1 – 3.4).

5. Определить, к какому типу по классификации Н. Хомского относится заданная грамматика и определяемый ею язык (для грамматик из примеров 3.1 – 3.4). Если можно построить эквивалентную грамматику более простого типа, то язык следует отнести к этому более простому типу.

6. Построить автомат-распознаватель для языка с заданной грамматикой (для грамматик из примеров 3.1 – 3.4).

7. Составить грамматику, описывающую язык, распознаваемый заданным автоматом (для автоматов из примеров 3.5 –3.7).

 

Примеры задач [1 с. 145]

5. Получить объектный код на языке ассемблера заданного оператора языка С0.

1) while (100>a) a = (b-6)*a + c;

где a, b - параметры; c - глобальная переменная.

2) if (f(c+d) < 3*d) s = 20;

где f - функция; c, s - глобальные переменные; d – локальная переменная.

3) return a*(a>b+4) - 8*(a<=b+4);

где a - глобальная переменная; b - локальная переменная.

4) p(5-x, a+10*(b-c/8));

где p - функция; a - глобальная переменная; x - параметр; b, c - локальные переменные.

 

6. Составить трассировочную таблицу компиляции на язык ассемблера оператора языка С0: pr (b+4, (a+7*b)/c);

где pr - функция; a - глобальная переменная; b - параметр; c - локальная переменная.

 

7. Построить дерево синтаксического анализа (грамматического разбора) заданного оператора языка С0:

1) while (x!=5) x = x - y/(z+10);

2) if (x==y+1) putchar(c+v/8);

 

8. Представить в двух других формах записи

1) инфиксное выражение 9 - 8 / (a + 1) * 3

2) префиксное выражение - / a 2 * 3 + b 8

3) постфиксное выражение x 1 y + 4 / 5 - *


ОСНОВНАЯ ЛИТЕРАТУРА

 

1. Хохлов Д.Г. Системное программное обеспечение: Учебное пособие. - Казань, Мастер Лайн, 2009, 178 с.

2. Хохлов Д.Г., Захарова З.Х. Введение в системное программирование: Учебное пособие. - Казань, Изд-во Казан. технич. ун-та, 2005, 163 с.

3. Хохлов Д.Г. Программирование на языке высокого уровня. Часть 2: Методы программирования: Учебник. - Казань: Мастер Лайн, 2009. - 270 с. (разделы 7 - 9, приложения).

4. Хохлов Д.Г. Основы технологии модульного программирования. Учебное пособие.- Казань: Изд-во Казан. технич. ун-та, 2005. - 63 с.

5. Хохлов Д.Г. Лабораторный практикум по методам трансляции: Методические указания.- Казань: Изд-во Казанского техн. ун-та, 2008. - 71 с.

6. Хохлов Д.Г., Захарова З.Х. Операционные системы: Учебное пособие. - Казань:: Мастер Лайн, 2010. - 154 с. (разделы 1, 5, приложения).

 

 

ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА

 

7. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. - СПб.: Питер, 2003. - 396 с.

8. Молчанов А.Ю. Системное программное обеспечение: Лабораторный практикум. - СПб.: Питер, 2005.

9. Свердлов С.З. Языки программирования и методы трансляции: Учебное пособие. – СПб: Питер, 2007.

10. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов. - М.: Мир, 1979. - 654 с.

11. Ахо А.В., Сети Р., Ульман Дж. Компиляторы: принципы, технология и инструменты. – М.: Вильямс, 2003. – 612 с.

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

 


<== предыдущая | следующая ==>
Профосмотр 13.03.2012г с. Музяк | 

Date: 2015-07-27; view: 319; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию