1 / 12

SSCLI: The Microsoft Shared Source CLI Implementation

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

Télécharger la présentation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.


Presentation Transcript

  1. SSCLI:The Microsoft Shared Source CLI Implementation Mark LewinMicrosoft Research marklew@microsoft.com

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

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

  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 • http://mailserver.di.unipi.it/mailman/listinfo/dotnet-sscli for mailing list and archive • Mailing list dotnet-rotor at discuss.develop.com

  11. Where to get SSCLI • http://msdn.microsoft.com/net/sscli • MSDN • Send me email (marklew@microsoft.com) for a copy of the SSCLI Toolkit which includes tutorial DVD

  12. Questions?

More Related