Presentation is loading. Please wait.

Presentation is loading. Please wait.

SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research

Similar presentations

Presentation on theme: "SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research"— Presentation transcript:

1 SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research

2 Announcing: Availability of Microsoft Shared Source CLI Example implementation of full ECMA standards –334: C# language –335: Common Language Infrastructure (CLI) –242: ECMAScript language (JScript implementation) Non-commercial, source code distribution –Modifiable (and documented for modification) –Easy to re-distribute and share changes –First shipment: beta-quality, experimental code Cross-platform implementation –Code builds and runs on FreeBSD and Windows XP –Code designed to easily port to other platforms

3 “Shared Source” License Offering Part of Microsoft “shared source” access program –One of many source code distributions at Microsoft –Full access to code, including ability to modify and distribute modifications –Non-commercial use only (books, courseware, and/or websites that teach the CLI are included in this) Long-term investment –To seed the future of a strong technology industry –To enable better understanding of commercial product –To grow Microsoft’s development community –To improve feedback process by enabling deep input

4 A Guide for Implementers CLI and C# standards were written to enable third-party implementations –Shared source CLI is an example implementation –License allows for “safe” examination of code For implementers of CLI alternatives: –Augments large, complex spec with code –Proves that multiple platform support is possible –Demonstrates interoperability For compiler writers who want to target CLI: –JScript compiler shows dynamic techniques –C# compiler shows nearly all runtime features –IL Assembler shows low-level API implementation and use

5 Implemented for Teaching/Learning Many areas of interest (1.9 million lines of code) Advanced virtual execution environment for components –Flexible, powerful, access to underlying platform –Typesafe, yet language-agnostic, services (think: C runtime) Contains useful component-based frameworks –Standard programming constructs –Web-service oriented networking and remoting Contains compilers, tools, and utilities –C#, JScript, and IL JIT compilers –Assembler, disassembler, linker, debuggers –Configuration utilities –Extensive tests and build harness

6 Overview of the CLI A common type system… …and a specification for language integration (CLS) –Execution engine with garbage collector and exception handling –Integral security system with verification A factored class library –A “modern” equivalent to the C runtime An intermediate language –CIL: Common Intermediate Language A file format –PE/COFF format, with extensions –An extensible metadata system Access to the underlying platform

7 Example Teaching Topics Component-based programming Comparative languages/infrastructure –Language integration –Type systems Compiler internals, runtime internals Language topics: verification, security Asynchronous web services Industrial software engineering –Internationalization –Code structure and maintenance –Build and test harness

8 Potential Research Areas Proof-carrying code, reflective environments JIT-supported pre/post conditions Runtime layout, compaction, or rewriting of code/data High-level support for mobile/distributed computing Garbage collection and other memory management techniques Distributed computing –XML-based –Asynchronous –Concurrency, memory models, locking Others? You tell us!

9 Relationship of Shared Source CLI and.NET Frameworks (CLR) Both CLI and CLR implement complete ECMA Shared Source CLI superset of ECMA, subset of commercial.NET Frameworks Shared source CLI implementation differs: –JIT and garbage collector replaced with more portable, more approachable, implementations –Many Windows-specific features not included: COM interop, WinForms, and other integration –Commercial features not included, such as ADO.NET, enterprise services, NGEN (JIT-ahead), and ASP.NET

10 Community and Future Plans Shared source CLI will evolve over time –Additional drops coming from Microsoft –Desire for shared access to changes, patches, etc. –Plans not final – please give feedback! Active help for self-sustaining communities –Announcing today: grant program to seed research –Working with authors on books about implementation –Microsoft team will have presence in community Mailing lists and newsgroups –news:microsoft.public.shared_source.cli – net-sscli for mailing list and archive –Mailing list dotnet-rotor at

11 Where to get SSCLI MSDN Send me email ( for a copy of the SSCLI Toolkit which includes tutorial

12 Questions?

Download ppt "SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research"

Similar presentations

Ads by Google