Русская Википедия:Roslyn

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

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

История

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

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

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

Архитектура

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

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

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

Примечания

Шаблон:Примечания

Шаблон:Свободное и открытое программное обеспечение Microsoft Шаблон:C Sharp