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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access