Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

__СТУДЕНТУ Системное ПО / СПО вопросы и задачи экзамена

.rtf
Скачиваний:
31
Добавлен:
12.03.2015
Размер:
53.32 Кб
Скачать

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

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

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.

Соседние файлы в папке __СТУДЕНТУ Системное ПО