Roslyn (компилятор) - Roslyn (compiler)

Платформа компилятора .NET (Roslyn)
Roslyn Compiler Logo.png
Автор (ы) оригинала Microsoft
Разработчики) .NET Foundation
Стабильный выпуск
Visual-Studio-2019-Version-16.7.3 / 4 сентября 2020 г . ; 12 месяцев назад ( 2020-09-04 )
Репозиторий github .com / dotnet / roslyn
Написано в C # , Visual Basic
Операционная система Microsoft Windows , Linux
Платформа IA-32 , x86-64
Тип Компилятор
Лицензия Лицензия MIT
Веб-сайт документы .microsoft .com / en-us / dotnet / csharp / roslyn-sdk /

Платформа компилятора .NET , также известная под псевдонимом Roslyn , представляет собой набор компиляторов с открытым исходным кодом и API-интерфейсов анализа кода для языков C # и Visual Basic (VB.NET) от Microsoft .

В частности, в проект включены автономные версии компиляторов C # и VB.NET - компиляторы, написанные на самих языках. Компиляторы доступны через традиционные программы командной строки, а также в виде API-интерфейсов, изначально доступных из кода .NET. Roslyn предоставляет модули для синтаксического ( лексического ) анализа кода, семантического анализа, динамической компиляции в CIL и выдачи кода.

Функции

Наиболее заметные основные особенности Roslyn включают в себя:

История

Кодовое имя «Roslyn» было впервые написано Эриком Липпертом (бывшим инженером Microsoft ) в сообщении, которое он опубликовал для найма разработчиков для нового проекта. Сначала он сказал, что это название произошло из-за Рослин, Вашингтон , но позже в своем посте он иронично говорит о «северной экспозиции» своего офиса. Город Рослин был одним из мест, где снимали телесериал « Северная экспозиция» .

Microsoft сделала предварительную версию технологии сообщества (CTP) доступной для публичной загрузки в октябре 2011 года. Она была установлена ​​как расширение Visual Studio 2010 SP1.

CTP был обновлен в сентябре 2012 года, чтобы включить множество обновлений API Roslyn, представленных в CTP за июнь 2012 и октябрь 2011 года, включая критические изменения . Хотя API CTP за июнь 2012 г. является завершенным для компиляторов, не все функции были реализованы для языков C # и VB.NET.

На конференции Build 2014 в Сан-Франциско в апреле 2014 года Microsoft сделала проект Roslyn открытым и выпустила предварительную версию языковой интеграции для Visual Studio 2013 . По состоянию на 3 апреля 2014 г. Roslyn находится под лицензией Apache License 2.0. По сути, проект был передан под управление недавно основанного .NET Foundation. На той же конференции Xamarin объявили, что они работают над интеграцией новых компиляторов и инструментов в Xamarin Studio .

В этом выпуске компиляторы не были полнофункциональными. Каждый из компиляторов содержит функции, запланированные для следующих языковых версий (C # 6 и Visual Basic.NET 14). API-интерфейсы также доступны через диспетчер пакетов NuGet .

Первый выпуск Roslyn в производство (RTM) был в Visual Studio 2015 . В настоящее время Roslyn поддерживает только VB и C #, а компиляторы написаны на соответствующих языках.

В январе 2015 года Microsoft переместила исходный код Roslyn с CodePlex на GitHub .

Архитектура

Традиционно компиляторы были черным ящиком для разработчиков приложений. Однако с ростом сложности и требований к анализу исходного кода в современных интегрированных средах разработки компиляторы должны предоставлять интерфейсы прикладного программирования (API), которые помогут разработчикам напрямую выполнять этапы компиляции, такие как анализ лексической и синтаксической структуры исходного кода. Roslyn с самого начала разрабатывался с этой целью. Это снижает барьер при разработке инструментов, специально предназначенных для анализа исходного кода. API-интерфейсы Roslyn бывают трех типов: API-интерфейсы функций, API-интерфейсы рабочей области и API-интерфейсы компилятора. API функций позволяют разработчикам инструментов исходного кода выполнять рефакторинг и исправления кода. API рабочей области позволяют разработчикам подключаемых модулей выполнять действия, специально требуемые в интегрированных средах разработки (IDE), таких как Visual Studio, такие как поиск ссылок на переменные или форматирование кода. API-интерфейсы компилятора позволяют выполнять еще более сложный анализ исходного кода, открывая прямые вызовы для выполнения синтаксического дерева и анализа потока привязки. Используя реализацию Common Language Infrastructure (CLI) с открытым исходным кодом, такую ​​как .NET Core , Roslyn сможет компилировать платформенно-независимым способом, способным запускать код CLI в Linux , OS X и Windows .

Смотрите также

использованная литература

внешние ссылки