МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
"Харківський політехнічний інститут"
О. С. Дерев'янко, С. Г. Межерицький,
С. Ю. Гавриленко, А. М. Клименко
СИСТЕМНЕ ПРОГРАМУВАННЯ. СИСТЕМНІ
СЕРВІСНІ КОМПОНЕНТИ
Навчальний посібник
Харків НТУ «ХПІ» 2009
ББК 32.81
Д81
УДК
681.3.06
Рецензенти:
О. Є. Федорович, д-р техн. наук, професор Національного
аерокосмічного університету ім. М. Є. Жуковського «Харківський авіаційний
інститут»;
Г. А. Кучук,
К.Т.Н., с.н.с. Харківського
університету Повітряних Сил ім. Івана Кожедуба
Автори:
О. С. Дерев'янко, С. Г. Межерицький, С. Ю. Гавриленко, А. М. Клименко
Д81 Системне програмування.
Системні сервісні компоненти [Текст]: навч. посіб. / О.С.
Дерев'янко, С.Ю. Гавриленко,
С.Г. Межерицький, А. М. Клименко. - Харків : НТУ
"ХПІ", 2009.
- 160 с.
ISBN 978-966-593-703-6
Розглянуто
питання розробки програм, які складають основу систем програмування. Наведено
особливості використання формальних мов і граматик для опису мов програмування
та побудови компіляторів.
Призначено
для студентів спеціальностей бакалаврату
"Комп'ютерна інженерія".
ISBN 978-966 593-703-6
ЗМІСТ
ПЕРЕДМОВА
1. ОСНОВНІ ПОНЯТТЯ ТА ВИЗНАЧЕННЯ
1.1.Програми та програмне
забезпечення
1.2.Системне програмування
1.3.Етапи підготовки програми
Контрольні запитання
2. АСЕМБЛЕРИ
2.1.Мова асемблера
2.2.Речення мови асемблера
2.3.Операнди команд
2.4.Директиви
2.5.Структури (бази) даних асемблера
2.6.Алгоритми роботи асемблерів
2.7.Двопрохідний асемблер - перший прохід
2.8.Деякі структури даних першого проходу
2.9.Про структуру таблиць асемблера
2.10.Двопрохідний асемблер - другий прохід
2.11.Деякі додаткові директиви
2.12.Одно- та багатопрохідний
асемблер
Контрольні запитання
3. МАКРОПРОЦЕСОРИ
3.1.Порівняння макрозасобів
та підпрограм
3.2.Деякі можливості макро
мови
3.3.Заголовок макровизначення
3.4.Закінчення макровизначення
3.5.Локальні змінні макровизначення
3.6.Присвоєння значень змінним макровизначення
3.7.Глобальні змінні макровизначення
3.8.Унікальні мітки
3.9.Оператор безумовного переходу та мітки
макровизначення
3.10.Оператор умовного переходу
3.11.Умовні блоки
3.12.Директиви повторень
3.13.Видача повідомлень
3.14.Завершення обробки
3.15.Коментарі у макровизначенні
3.16.Макророзширення у лістингу
3.17.Структури даних макропроцесора
3.18.Алгоритм роботи макропроцесора
3.19.Алгоритм виконання першого проходу макропроцесора
3.20.Алгоритм виконання другого проходу макропроцесора
3.21.Алгоритм обробки макро
виклику
3.22.Бібліотеки макровизначень
3.23.Вкладені макровиклики та
вкладені макровизначення
3.24.Макровизначення усередині макровизначень
3.25.Макрокоманди у середині макровизначень
3.26.Якісне розширення можливостей
3.27.Структурний асемблер
3.28.Об'єктно-орієнтований асемблер
3.29.Машинна мова, яку можна переносити
Контрольні запитання
4. РЕДАКТОРИ ЗВ'ЯЗКІВ ТА ЗАВАНТАЖУВАЧІ
4.1.Основні поняття
4.2.Настроювальний завантажувач
4.3.Зв'язування у настроювальному
завантажувачі
4.4.Переміщення в настроювальному
завантажувачі
4.5.Безпосередньо зв'язуючі
завантажувачі
4.6.Формат об'єктного модуля
4.7.Алгоритм роботи безпосередньо зв'язуючого
завантажувача
4.8.Алгоритм виконання першого проходу завантажувача
4.9.Алгоритм виконання другого проходу завантажувача
Контрольні запитання
5. КРОС-СИСТЕМИ
5.1.Модель регістрів
5.2.Модель оперативної пам'яті
5.3.Модель процесора
5.4.Час
5.5.Система переривань
5.6.Введення-виведення
5.7.Взаємодія з людиною-оператором
Контрольні запитання
6. ФОРМАЛЬНІ МОВИ І
ГРАМАТИКИ
6.1.Визначення формальних мов і граматик
6.2.Приклади, що ілюструють первинні поняття
6.3.Порожня мова
6.4.Типи формальних мов і граматик
6.4.1.Граматики типу 0
6.4.2.Граматики типу 1
6.4.3.Граматики типу 2
6.4.4.Граматики типу 3
6.5.Виведення у КВ-граматиках
і правила побудови дерева виведення
6.5.1.Синтаксичний розбір
6.5.2.Ліве і праве виведення
6.6.Неоднозначні та еквівалентні граматики
6.7.Способи задания схем граматик
6.7.1.Рекомендації щодо побудови граматик
6.7.2.Опис списків
6.7.3.Приклад побудови граматик
6.7.4.Граматики, що описують цілі числа без знака і
ідентифікатори
6.7.5.Граматики для арифметичних виразів
6.7.6.Граматика для описів
6.7.7.Граматика, що описує умовний оператор
Контрольні запитання
7. КОНТЕКСТНО-ВІЛЬНІ
ГРАМАТИКИ І АВТОМАТИ
7.1. Приведені граматики
7.2.Визначення непродуктивних символів
7.3.Визначення недосяжних символів
7.4.Виключення ліворекурсивних
правил
7.5.Виключення ланцюгових правил
7.6.Магазинні автомати
Контрольні запитання
8. СПАДНІ РОЗПІЗНАВАЧІ
8.1.Розділені граматики
8.2.Побудова детермінованого спадного розпізнавана
8.2.1.Множина ВИБІР
8.2.2.Побудова функції ПЕРВ(μ)
8.2.3.Побудова функції СЛІД(μ)
8.2.4.Побудова множини ВИБІР(μ)
8.3.Слабкорозділені граматики
8.4.LL(1 )-граматики
8.5.Побудова магазинного автомата
8.6.Приклади побудови спадного розпізнавача
Контрольні запитання
9. ВИСХІДНІ
LR(k)-РОЗПІЗНАВАЧІ
9.1.LR(k)-граматики
9.2.Побудова таблиць розпізнавача.
Алгоритм роботи розпізнавача
9.3.Приклад побудови LR(0)-розпізнавача
9.4.Побудова SLR(1)-розпізнавача
9.5.Висхідні розпізнавачі для
граматик з правилами, що анулюють
9.6.Приклад побудови LR(1)-розпізнавача
Контрольні запитання
10. РЕ-ФОРМАТ
ВИКОНУВАНОГО ФАЙЛА
10.1.MZ-частина файла РЕ-формату
10.2.Визначення розміщення РЕ-частини файла РЕ-формату
10.3.Вміст MZ-частини файла РЕ-формату
10.4.Структура заголовка РЕ-файла
10.5.Основний заголовок РЕ-файла
(РЕ FileHeader)
10.6.Додатковий заголовок РЕ-файла
(РЕ OptionaHeader)
10.7.Таблиця секцій
10.8.Розділ секцій
10.9.Секція опису функцій РЕ-файла,
що імпортуються
10.10.Секція опису функцій РЕ-файлу, що експортуються
Контрольні запитання
СПИСОК ЛІТЕРАТУРИ