O'Reilly logo

Shared Source CLI Essentials by Ted Neward, Geoff Shilling, David Stutz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required