.NET Compiler Platform (кодовое название Roslyn) — платформа с открытым исходным кодом, содержащая компиляторы и средства для статического анализа кода, написанного на языках C# и Visual Basic (VB.NET) от Microsoft[2].

.NET Compiler Platform (Roslyn)
Логотип программы .NET Compiler Platform (Roslyn)
Типкомпилятор и свободное и открытое программное обеспечение
АвторMicrosoft
Разработчик.NET Foundation
Написана наC# и Visual Basic .NET
Операционные системыWindows, Linux, macOS
Аппаратные платформыIA-32, x86-64
Последняя версия
Репозиторийgithub.com/dotnet/roslyn
Лицензиялицензия MIT
Сайтgithub.com/dotnet/roslyn
docs.microsoft.com/dotne…

Платформа включает в себя самодостаточные версии компиляторов C# и VB.NET — компиляторов, написанных на этих же языках. Взаимодействие с компиляторами может осуществляться через традиционные инструменты командной строки, а также через API из кода .NET. Roslyn предоставляет модули для синтаксического и лексического анализа кода, семантического анализа и динамической компиляции в CIL[3].

История

В 2010 году инженер Microsoft Эрик Липперт опубликовал объявление о наборе разработчиков для участия в новом проекте под кодовым названием Roslyn[4]. В октябре 2011 года Microsoft выпустила предварительный выпуск Roslyn, поставляемый в виде расширения для IDE Visual Studio 2010[5].

В апреле 2014 года в Сан-Франциско состоялась конференция Build, на которой Microsoft объявила о переводе проекта Roslyn на open source и выпустила версию для Visual Studio 2013. Тогда же компания Xamarin заявила об интеграции инструментов платформы в свою IDE Xamarin Studio[6].

В 2015 году исходный код проекта был перемещён на GitHub[7].

Архитектура

Roslyn предоставляет разработчикам API нескольких слоёв[8]:

  1. API компилятора — содержит объектные модели, соответствующие синтаксическим и семантическим сведениям на каждом этапе компиляции.
  2. API диагностики — предоставляет возможности для выполнения набора различных диагностик, позволяя задействовать пользовательские анализаторы в процессе компиляции.
  3. API скриптов — используется для выполнения скриптов, а также для работы с контекстом выполнения.
  4. API рабочих областей — предоставляет доступ к объектным моделям слоя компилятора.

Инструменты исходного кода, созданные на основе Roslyn, могут поставляться как в виде расширения Visual Studio, так и в виде самостоятельного приложения[9].

Примечания