Книга: Макаров А. В., Скоробогатов С. Ю., Чеповский А. М. «Common Intermediate Language и системное программирование в Microsoft. NET»

Common Intermediate Language и системное программирование в Microsoft. NET

Серия: "Основы информатики и математики"

Описаны основы архитектуры платформы . NET и промежуточный язык этой платформы - Common Intermediate Language (CIL). Подробно рассмотрен прием программирования, называемый динамической генерацией кода. Дано введение в многозадачность и описаны подходы к разработке параллельных приложений на базе платформы . NET.
Адресовано всем изучающим вопросы создания метаинструментария и разработки компиляторов для различных операционных систем.
Для студентов и преподавателей университетов, а также для специалистов, повышающих свою квалификацию.

Содержание:

Глава 1. Введение в архитектуру Microsoft .NET Framework...... 1 1. 1. Знакомство с .NET...... 1 1. 1. 1. Главные темы...... 1 1. 1. 2. Предшественники платформы .NET...... 3 1. 1. 3. Обзор архитектуры .NET...... 5 1. 2. Общая система типов...... 9 1. 2. 1. Ядро системы типов .NET...... 11 1. 2. 2. Дополнительные элементы системы типов .NET...... 17 1. 3. Виртуальная система выполнения...... 21 1. 3. 1. Состояние виртуальной машины...... 21 1. 3. 2. Состояние метода...... 23 1. 4. Автоматическое управление памятью...... 28 1. 4. 1. Выделение памяти в управляемой куче...... 28 1. 4. 2. Алгоритм сборки мусора...... 29 1. 4. 3. Основные приемы повышения эффективности сборки мусора...... 30 Глава 2. Структура программных компонентов...... 32 2. 1. Формат исполняемых файлов...... 32 2. 1. 1. Управление памятью в Windows...... 34 2. 1. 2. Обзор структуры PE-файла...... 36 2. 1. 3. Заголовки...... 40 2. 1. 4. Особые секции PE-файла...... 49 2. 1. 5. Заголовок CLI...... 52 2. 1. 6. Пример генерации PE-файла...... 53 2. 2. Формат метаданных...... 64 2. 2. 1. Расположение метаданных и кода внутри сборки...... 65 2. 2. 2. Структура метаданных...... 67 2. 2. 3. Таблицы метаданных...... 68 2. 3. Взаимодействие программных компонентов...... 72 2. 3. 1. Обзор компонентных технологий...... 73 2. 3. 2. Взаимодействие компонентов в среде .NET...... 76 2. 3. 3. Общая спецификация языков...... 82 Глава 3. Common Intermediate Language...... 83 3. 1. Поток инструкций языка CIL...... 83 3. 1. 1. Формат потока инструкций...... 83 3. 2. Язык CIL: инструкции общего назначения...... 88 3. 2. 1. Инструкции для загрузки и сохранения значений...... 88 3. 2. 2. Арифметические инструкции...... 91 3. 2. 3. Инструкции для организации передачи управления...... 100 3. 3. Язык CIL: инструкции для поддержки объектной модели...... 105 3. 3. 1. Инструкции для работы с объектами...... 105 3. 3. 2. Инструкции для работы с массивами...... 108 3. 3. 3. Инструкции для работы с типами-значениями...... 111 3. 3. 4. Инструкции для работы с типизированными ссылками...... 115 3. 4. Язык CIL: обработка исключений...... 116 3. 4. 1. Предложения обработки исключений в заголовках методов...... 117 3. 4. 2. Инструкции CIL для обработки исключений...... 119 3. 4. 3. Правила размещения областей...... 121 3. 4. 4. Ограничения на передачу управления...... 122 3. 4. 5. Семантика обработки исключений...... 123 3. 5. Синтаксис ILASM...... 123 3. 5. 1. Основные элементы лексики...... 124 3. 5. 2. Синтаксис...... 125 3. 5. 3. Пример программы...... 128 Глава 4. Анализ кода на CIL...... 132 4. 1. Граф потока управления...... 132 4. 1. 1. Основные элементы графа потока управления...... 133 4. 1. 2. Блоки обработки исключений в графе потока управления...... 134 4. 1. 3. Дерево блоков в графе потока управления...... 138 4. 2. Преобразование линейной последовательности инструкций в граф потока управления...... 140 4. 2. 1. Создание массива узлов...... 141 4. 2. 2. Создание дерева блоков...... 142 4. 2. 3. Присвоение родительских блоков узлам графа...... 145 4. 2. 4. Формирование дуг...... 145 4. 3. Верификация CIL-кода...... 147 4. 3. 1. Классификация применяемых на практике алгоритмов верификации...... 147 4. 3. 2. Особенности верификатора кода, используемого в .NET...... 148 4. 3. 3. Алгоритм верификации...... 149 4. 4. Библиотеки для создания метаинструментов...... 152 4. 4. 1. Metadata Unmanaged API...... 153 4. 4. 2. Reflection API...... 156 4. 4. 3. Сравнение возможностей библиотек...... 162 Глава 5. Динамическая генерация кода...... 164 5. 1. Введение в динамическую генерацию кода...... 164 5. 1. 1. Обобщенный алгоритм интегрирования...... 165 5. 1. 2. Представление выражений...... 166 5. 1. 3. Трансляция выражений в C#...... 167 5. 1. 4. Трансляция выражений в CIL...... 169 5. 1. 5. Сравнение эффективности трех способов вычисления выражений...... 172 5. 2. Генерация линейных участков кода для стековой машины...... 172 5. 2. 1. Генерация кода для выражений...... 172 5. 2. 2. Оптимизация линейных участков кода...... 175 5. 3. Генерация развилок...... 176 5. 3. 1. Генерация кода для логических выражений...... 177 5. 3. 2. Генерация кода для управляющих конструкций...... 179 5. 3. 3. Оптимизация кода, содержащего развилки...... 181 Глава 6. Основы многозадачности...... 185 6. 1. Многозадачность в Windows...... 185 6. 1. 1. Основные понятия...... 186 6. 1. 2. Реализация в Windows...... 198 6. 2. Общие подходы к реализации приложений с параллельным выполнением операций...... 204 6. 2. 1. Асинхронный ввод-вывод...... 205 6. 2. 2. Асинхронные вызовы процедур...... 210 6. 2. 3. Процессы, потоки и объекты ядра...... 210 6. 2. 4. Основы использования потоков и волокон...... 215 Глава 7. Разработка параллельных приложений для ОС Windows...... 221 7. 1. Применение потоков и волокон...... 221 7. 1. 1. Пулы потоков, порт завершения ввода-вывода...... 221 7. 1. 2. Память, локальная для потоков и волокон...... 228 7. 1. 3. Привязка к процессору и системы с неоднородным доступом к памяти...... 233 7. 2. Взаимодействие процессов и потоков...... 234 7. 2. 1. Синхронизация потоков...... 234 7. 2. 2. Процессы...... 246 7. 3. Параллельные операции в .NET...... 253 7. 3. 1. Потоки и пул потоков...... 255 7. 3. 2. Асинхронный ввод-вывод...... 258 7. 3. 3. Асинхронные процедуры...... 260 7. 3. 4. Синхронизация и изоляция потоков...... 264 7. 3. 5. Таймеры...... 274 Литература...... 276 Приложение A. Исходный код программы pegen...... 277 A. 1. macros.h...... 277 A. 2. pe.h...... 279 A. 3. pe.c...... 284 A. 4. main.c...... 291 Приложение Б. Исходный код программы CilCodec...... 294 Приложение B. Исходный код программы Integral...... 305 B. 1. Expr.cs...... 305 B. 2. Integral.cs...... 311

Издательство: "Интернет-Университет Информационных Технологий" (2006)

ISBN: 5955600558

Другие книги схожей тематики:

АвторКнигаОписаниеГодЦенаТип книги
А. В. Макаров, С. Ю. Скоробогатов, А. М. ЧеповскийCommon Intermediate Language и системное программирование в Microsoft. NETОписаны основы архитектуры платформы . NET и промежуточный язык этой платформы — Common Intermediate Language (CIL). Подробно… — Интернет-университет информационных технологий, Бином. Лаборатория знаний, (формат: 60x90/16, 328 стр.) Основы информатики и математики Подробнее...2011
182бумажная книга
А. В. Макаров, С. Ю. Скоробогатов, А. М. ЧеповскийCommon Intermediate Language и системное программирование Microsoft . NETОписаны основы архитектуры платформы . NET и промежуточный язык этой платформы - Common Intermediate Language (CIL). Подробно… — Бином. Лаборатория знаний, Интернет-университет информационных технологий, (формат: 60x90/16, 328 стр.) Основы информатики и математики Подробнее...2010
182бумажная книга

Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»