How This Book Is Structured
The CLI provides a number of services to programming languages and tools that wish to produce managed code, and the runtime mechanisms needed to create and run managed components are the focus of this book. After introducing the CLI, its core concepts, and the Rotor implementation, the following topics are covered:
- The CLI type system
Unlike some virtual execution environments, the type system is the heart of the CLI. Chapter 3 examines what constitutes a type, how types map into internal data structures and processor-specific values, and how Rotor implements the features found in the ECMA CLI specification.
- Component packaging
Assemblies are the construct that the CLI uses to package executable code safely. Chapter 4 covers what assemblies are, how they are built and loaded, and what design goals they were intended to meet.
- Type loading and JIT compilation
The ECMA CLI specification specifically states that CIL was designed to be transformed into native CPU instructions before being directly executed. Chapter 5 focuses on the details of how Rotor converts types, expressed as CIL and metadata, into native code, and what triggers this process.
- Managed code
Running native code safely under the control of a virtual execution environment is not simple. Chapter 6 details the execution engine and how it uses mechanisms such as threads and exceptions to maintain control while also allowing extensive access to the underlying platform.
- Garbage collection
The CLI ...