Roslyn

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

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

Платформа включает в себя самодостаточные версии компиляторов 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].

Примечания

  1. Release 5.0.1 — 2020.
  2. C# and Visual Basic - Use Roslyn to Write a Live Code Analyzer for Your API (англ.). MSDN (24 июля 2015). Дата обращения: 12 мая 2023. Архивировано 8 декабря 2022 года.
  3. Neil McAllister. Microsoft's Roslyn: Reinventing the compiler as we know it (англ.). InfoWorld (20 октября 2011). Дата обращения: 12 мая 2023. Архивировано 24 апреля 2023 года.
  4. Eric Lippert. Hiring for Roslyn (англ.). Eric Lippert's Erstwhile Blog (16 декабря 2010). Дата обращения: 13 мая 2023. Архивировано 13 мая 2023 года.
  5. Microsoft “Roslyn” CTP (англ.). Microsoft Download Center. Дата обращения: 13 мая 2023. Архивировано из оригинала 18 апреля 2012 года.
  6. Jonathan Allen. Highlights from Build 2014’s Second Keynote (англ.). InfoQ (3 апреля 2014). Дата обращения: 13 мая 2023. Архивировано 25 сентября 2022 года.
  7. We're moving to GitHub. MSDN (10 января 2015). Дата обращения: 13 мая 2023. Архивировано из оригинала 1 декабря 2015 года.
  8. Understand the .NET Compiler Platform SDK model (англ.). MSDN (15 сентября 2021). Дата обращения: 13 мая 2023. Архивировано 22 января 2023 года.
  9. Введение в Roslyn. Использование для разработки инструментов статического анализа. Хабр. Блог компании PVS-Studio (19 мая 2016). Дата обращения: 13 мая 2023. Архивировано 13 мая 2023 года.