sscli the microsoft shared source cli implementation l.
Skip this Video
Loading SlideShow in 5 Seconds..
SSCLI: The Microsoft Shared Source CLI Implementation PowerPoint Presentation
Download Presentation
SSCLI: The Microsoft Shared Source CLI Implementation

Loading in 2 Seconds...

play fullscreen
1 / 12

SSCLI: The Microsoft Shared Source CLI Implementation - PowerPoint PPT Presentation

  • Uploaded on

SSCLI: The Microsoft Shared Source CLI Implementation. Mark Lewin Microsoft Research Announcing: Availability of Microsoft Shared Source CLI. Example implementation of full ECMA standards 334: C# language 335: Common Language Infrastructure (CLI)

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

SSCLI: The Microsoft Shared Source CLI Implementation

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
sscli the microsoft shared source cli implementation

SSCLI:The Microsoft Shared Source CLI Implementation

Mark LewinMicrosoft Research

announcing availability of microsoft shared source cli
Announcing: Availability ofMicrosoft 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
shared source license offering
“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
a guide for implementers
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
implemented for teaching learning
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
overview of the cli
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
example teaching topics
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
potential research areas
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!
relationship of shared source cli and net frameworks clr
Relationship of Shared Source CLIand .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
community and future plans
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
    • for mailing list and archive
    • Mailing list dotnet-rotor at
where to get sscli
Where to get SSCLI
  • MSDN
  • Send me email ( for a copy of the SSCLI Toolkit which includes tutorial DVD