|
Programming, if not the whole, is still the core of software
development. In the last few years, programming has been impacted
dramatically by three distinct trends. First is the continual evolution
of component models to support code-reuse and development efficiency.
Second is the move to disconnect programming languages from specific
runtimes to give programmers greater freedom of choice to select a
programming language best suited to programming goals, rather than
making this decision based on the intended runtime environment. Third,
there is the increased prevalence of managed execution, in which
machines become smarter and provide a variety of services to ensure
performance and security of the code they are running.
Managed code execution, language-agnostic runtime services, and
component-based software design are at the heart of Microsoft .NET
Framework for systems and application programming. For the last several
years, Microsoft Research External Research & Programs has encouraged
and supported research and teaching in the areas of compiler
construction, virtual machines, program analysis, and tools that improve
understanding of these paradigms. Through these efforts we hope to
create real opportunities for technology evolution.
Our engagement around these trends centers on two
complementary offerings: Phoenix and SSCLI.
Phoenix
This state-of-the-art framework is built by
Microsoft Research and Microsoft’s product compiler team. It enables
teaching and collaborative research in code generation, optimization,
program analysis, binary transformation, and software correctness.
Phoenix is used as a research platform by Microsoft Research and will be
the universal compiler backend for upcoming Microsoft languages and
development tools.
Phoenix is managed by John Lefor.
SSCLI
The Shared Source CLI (SSCLI), also known as
Rotor, is a full source code distribution of Microsoft’s C#
language compiler and the ECMA-standardized language-neutral Common
Language Infrastructure. SSCLI is derived directly from the product
source code for Microsoft Common Language Runtime and .NET Framework and
is available for the FreeBSD operating system and Windows. SSCLI has
been used in dozens of research and teaching settings around the world,
enabling work in the areas of memory management, garbage collection,
virtual object systems, just-in-time compilation, and code security,
among others.
SSCLI (Rotor) is
managed by Mark Lewin.
|