.NET Compiler Platform
This article needs additional citations for verification. (June 2016) (Learn how and when to remove this template message)
The project notably includes self-hosting versions of the C# and VB.NET compilers – compilers written in the languages themselves. The compilers are available via the traditional command-line programs but also as APIs available natively from within .NET code. Roslyn exposes modules for syntactic (lexical) analysis of code, semantic analysis, dynamic compilation to CIL, and code emission.
Even though the final and official name of the component is ".NET Compiler Platform", it is widely referred to by its code name, "Roslyn".
The code name "Roslyn" was first written by Eric Lippert (a former Microsoft engineer) in a post that he published to hire developers for a new project. He first said that the origin of the name was because of Roslyn, Washington, but later in the post he speaks ironically about the northern exposure of its office. The city of Roslyn was one of the places where this television series was filmed.
The most notable primary features of Roslyn include:
- Compilers for the C# and Visual Basic .NET languages exposed as services via APIs.
- APIs for code analysis and refactoring.
The CTP was updated on September 2012 to include many updates to the Roslyn APIs introduced in the June 2012 and October 2011 CTPs, including breaking changes. While the June 2012 CTP API is complete for the compilers, not all features were implemented for the C# and VB.NET languages.
At the Build 2014 conference in San Francisco April 2014, Microsoft made the "Roslyn" project open-source and released a preview of the language integration for Visual Studio 2013. As of April 3, 2014, Roslyn is under the Apache License 2.0. The project was effectively transferred under the stewardship of the newly founded .NET Foundation. At the same conference, Xamarin announced that they are working on integrating the new compilers and tools in Xamarin Studio.
The compilers were not feature-complete in this release. Each of the compilers contains features that are planned for the coming language versions (C# 6 and Visual Basic.NET 14). The APIs are also available through the NuGet package manager.
Roslyn's first RTM release was with Visual Studio 2015. Roslyn currently only supports VB and C#, and the compilers were written in their respective languages.  However, projects have since emerged, adding support for other languages, such as PeachPie, the PHP compiler to .NET written in C#.
In January 2015, Microsoft moved the Roslyn source code from CodePlex to GitHub.
Traditionally compilers have been a black box for application developers. With increasing complexity and demands for source code analysis in modern integrated development environments, however, compilers need to expose application programming interfaces (APIs) that will help developers to directly perform phases of compilation such as lexical and syntactic structure analysis of source code. Roslyn was designed with that intention from the beginning. This reduces the barrier in developing tools specifically designed for source code analysis. APIs of Roslyn are of three types, namely feature APIs, work-space APIs and compiler APIs. Feature APIs allow source code tool developers to do code refactoring and fixes. Work-space APIs allow plugin developers to perform actions specifically required in integrated development environments (IDEs) like Visual Studio such as finding references of a variable or code formatting. Compiler APIs allow even more sophisticated analysis of source code, by exposing direct calls to perform syntax tree and binding flow analysis. Using an open-source implementation of Common Language Infrastructure (CLI) such as .NET Core, Roslyn will be able to compile in a platform-agnostic manner capable of running CLI code in Linux, OS X, and Windows.
- .NET Compiler Platform ("Roslyn") on GitHub
- Neil McAllister, Microsoft's Roslyn: Reinventing the compiler as we know it, DEVELOPER_WORLD, 2011-10-20
- "C# and Visual Basic - Use Roslyn to Write a Live Code Analyzer for Your API". msdn.microsoft.com. Retrieved 2019-01-07.
- "Fabulous adventures in coding". About Eric Lippert. Eric Lippert.
- "Hiring for Roslyn". Eric Lippert's MSDN blog. Eric Lippert. 2012-12-16.
- Microsoft "Roslyn" CTP Archived April 18, 2012, at the Wayback Machine, Microsoft Download Center
- Microsoft "Roslyn" CTP, Microsoft Download Center
- What's New in the Microsoft "Roslyn" September 2012 CTP, Visual Studio vNext Forums
- Known Limitations and Unimplemented Language Features, Visual Studio vNext Forums
- .NET Foundation – Open Source Foundation for the .NET Community
- Visual Studio 2015 RTM, 2015-07-20
- Microsoft Roslyn vs. CodeDom
- PeachPie: the PHP compiler and runtime for .NET and .NET Core - peachpiecompiler/peachpie, Peachpie Compiler Platform, 2019-01-18, retrieved 2019-01-19
- We're moving to GitHub!, MSDN VBTeam Blog, 2015-01-10
- Overview of Roslyn from GitHub documentation