.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]:
- API компилятора — содержит объектные модели, соответствующие синтаксическим и семантическим сведениям на каждом этапе компиляции.
- API диагностики — предоставляет возможности для выполнения набора различных диагностик, позволяя задействовать пользовательские анализаторы в процессе компиляции.
- API скриптов — используется для выполнения скриптов, а также для работы с контекстом выполнения.
- API рабочих областей — предоставляет доступ к объектным моделям слоя компилятора.
Инструменты исходного кода, созданные на основе Roslyn, могут поставляться как в виде расширения Visual Studio, так и в виде самостоятельного приложения[9].
Примечания
|
---|
Общая информация | |
---|
Программное обеспечение | Приложения | |
---|
Игры | |
---|
Языки программирования | |
---|
Фреймворки и средства разработки | |
---|
Операционные системы | |
---|
Прочее | |
---|
|
---|
Лицензии | |
---|
Связанные темы | |
---|
|
|
---|
Версии | |
---|
ПО | |
---|
Связанное | |
---|