Chapter 2. Getting Started with Rotor
The expertise needed to build a virtual machine spans disciplines as diverse as systems design, compiler theory, and hardware architecture. Understanding how and why this is true is important, both for those using virtual machines to solve day-to-day problems and for those extending or implementing them. The purpose of this book is to explain the CLI specification in these terms, drawing on Rotor’s source code for examples and clarification.
Before getting to these details, we’ll take a detailed look at building, running, debugging, and modifying managed code with Rotor. A simple example will demonstrate these concepts: a managed component that echoes its input back to the console. This example will form a recurring basis for continuing discussions of Rotor’s implementation in the chapters that follow.
A Simple Component Assembly
Consider the simple CLI component in Example 2-1, which consists of a single type named Echo
. The Echo
type has a single property named EchoString
, and a single method, DoEcho
.
Example 2-1. A simple CLI component expressed in C# code
public class Echo { private string toEcho = null; public string EchoString { get { return toEcho; } set { toEcho = value; } } public string DoEcho( ) { if (toEcho == null) throw new Exception("Alas, there is nothing to echo!"); return toEcho; } }
This component is written using the C# programming language and can be compiled into a CLI component using any C# compiler. C# was chosen for examples ...
Get Shared Source CLI Essentials now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.