Tuesday – 8:30-17:00
Convention Ctr - Room 611

21 – A Language Designer's View of Rotor, Microsoft's "Shared Source" Implementation of the Common Language Infrastructure

David Stutz
Microsoft Corporation

Yahya Mirza
Aurora Borealis Software

Recently, Microsoft has introduced the next major evolution of their computing platform, the .NET initiative. The core of this initiative is a language-agnostic runtime system, which is being standardized by ECMA, called the Common Language Infrastructure or the CLI. Finally, the language interoperability and integration solutions promised in the 90's are now becoming a pervasive commercial reality. Furthermore, the multi-vendor adoption of Microsoft's .NET initiative provides a great opportunity for language researchers. This opportunity allows a language researcher to innovate in their particular domain, while interoperating with existing commercial and research oriented language-based solutions.

In early 2002, Microsoft will release Rotor, a "Shared Source" implementation of the CLI available on BSD UNIX as well as the Windows platform. A key technical advantage of the CLI is the ability of its intermediate language to support multiple language paradigms, as opposed to a single rigid object model. For language designers, Rotor can serve as an effective runtime core for experimentation at the language feature level. For compiler and virtual machine researchers, Rotor provides a context for applied research into alternative object representations, method dispatch, garbage collectors, JIT compilers, etc. Our goal is to provide an in-depth exploration into Rotor.

Not only will attendees learn about the inner workings of the Rotor implementation, they will also learn about alternative design options and their ramifications which led to the current architecture of the CLI. The approach to describing Rotor will be based on identifying the patterns and idioms embodied within Rotor, as well as describing their implementation details. Additionally, we plan to illustrate similarities and differences with other runtime systems including the Squeak and Java virtual machines. Another key objective of this tutorial will be to illustrate approaches to extending and modifying Rotor in new directions. These approaches to language feature extensions will include the description of language features based on runtime or meta-level frameworks, as well as approaches to extending the underlying intermediate language. To illustrate the issues involved in research extensions to the intermediate language, Microsoft Cambridge's ILX extensions will be dissected and explained in detail. Finally, language interoperability issues in the context of language feature design will be enumerated. As a working example, how C# layers over the Common Language Subset or the CLI object model will be explained in detail.

Attendee background

This tutorial is aimed at professionals wanting a deeper understanding of Microsoft's CLI and its comparison with other runtime systems. Graduate students interested in language design, compiler implementation, or virtual machine research, as well as researchers requiring a host environment to construct a domain specific language would be ideal candidates.

Format

This tutorial will be presentation based using slides.

Presenters

David Stutz is currently working on the team that is implementing the Microsoft Shared Source CLI. He is also well known for his kibitzing on the design of peer-to-peer and distributed computing infrastructures. During his tenure at Microsoft and Microsoft Research, he has participated in designing programming languages, component technologies, operating systems, developer tools, and a whole lot of software plumbing. He is also an accomplished early music performer and a wine grape farmer.

Mr. Mirza has had the pleasure of bugging David Stutz and Ralph Johnson about applied object technologies since 1995. In 1996, Mr. Mirza bugged Ralph so much that he was invited to study under Ralph at the UIUC. Mr. Mirza's passion for components originated from his work in the aerospace industry, to quickly generate models of single-stage-to-orbit design concepts. After transitioning into the computer animation industry, Mr. Mirza has been developing a component-based infrastructure for an animated production. Mr. Mirza continues to perform original guitar and piano music around Seattle until he makes it in the software industry.