Книга: Макаров А. В., Скоробогатов С. Ю., Чеповский А. М. «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 | бумажная книга |