The Microsoft .NET Compiler Platform, better known as Roslyn, consists of two compilers (one for C# and one for Visual Basic) with rich code analysis APIs.
Roslyn provides compilers as services which can be used to create code focused tools and applications. This creates opportunities for innovation in areas such as meta-programming, code generation and transformation, scripting, interactive use of the C# and VB languages, and embedding of C# and VB in domain specific languages.
Roslyn exposes the C# and Visual Basic compiler’s code analysis to you as a consumer by providing an API layer that mirrors a traditional compiler pipeline.
Each phase of this pipeline is now a separate component. First the parse phase, where source is tokenized and parsed into syntax that follows the language grammar. Second the declaration phase, where declarations from source and imported metadata are analyzed to form named symbols. Next the bind phase, where identifiers in the code are matched to symbols. Finally, the emit phase, where all the information built up by the compiler is emitted as an assembly.
In April 2014 Roslyn went open source.
Get started with Roslyn
Roslyn is Microsoft's effort is about re-architecting the C# and VB compliers so others can use them to create compiler services.
At Build 2014 this month Microsoft previewed language integration and made Roslyn an open source project.
Business rules engines, dynamic scripting, macros, and code refactoring are just a few of the ways Roslyn can be used.
Learn more by reading ‘Taking a tour of Rosylyn’.
With Microsoft Roslyn you can write applications that evaluate code at runtime.
While it’s been possible to implement scripting since the release of .Net it’s not been easy. Check out Brian Rasmussen’s blog on scripting:
Learn about the Roslyn scripting API
Until now the VB and C# compilers have been black boxes, un accessible to Microsoft.Net developers.
Enter Microsoft Roslyn, “a set of APIs for exposing the Microsoft C# and Visual Basic .NET compilers as services available at runtime.”
This software is currently available as a community technology preview (CTP).
Roslyn can be imagined as a “compiler as a Windows service” which VB and C# developers can access through the new Roslyn APIs.
It allows the entire compile-execute process to be invoked from within .Net applications to, for example, give VB and C# a dynamic languages ability to generate and invoke code at runtime.
Or, how about incorporating Roslyn into a .NET application that accepts user input then uses Roslyn APIs to process the input (remember how good old class VB could evaluate a string?)
Roslyn is powerful but you won’t know how powerful it is until you try it out yourself.
Download it today!