Спецпроекты

Microsoft раскрыла исходный код компилятора С# и Visual Basic

Открытое ПО ПО Свободное ПО
Microsoft открыла исходный код компилятора С# и Visual Basic в рамках открытой лицензии Apache 2.0. Кроме того, компания анонсировала создание организации .Net Foundation, которая объединила 24 проекта .Net с открытым исходным кодом.

Microsoft раскрыла исходный код проекта .Net Compiler Platform под кодовым именем Roslyn, разместив его на ресурсе Codeplex в рамках свободной лицензии Apache 2.0. Соответствующий анонс в ходе конференции Build в Сан-Франциско сделал разработчик Microsoft Эндерс Хейлсберг (Anders Hejlsberg).

В состав проекта Roslyn входит компилятор C# и Visual Basic. В Mirosoft его называют «компилятором как услуга» (compiler as a service). Отличительной чертой Roslyn является то, что в нем присутствуют интерфейсы программирования (API) для расширенного анализа кода. Таким образом, разработчики могут создавать инструменты для анализа кода, используя те же API, которыми Microsoft пользуется в Visual Studio.

Многие, а может и даже все компиляторы представляют собой «черные ящики». Они принимают исходный код в начале и выдают исполняемый код в конце, поясняет Ars Technica. С Roslyn корпорация Microsoft придерживается иного подхода. Компилятор Roslyn может быть использован как библиотека. Когда он читает кусок исходного кода, он производит внутреннее представление, которое код третьей стороны может изменять и инспектировать.

Проект Roslyn был впервые представлен Microsoft на конференции Build в 2011 г. Позже в том же году компания выпустила его первую предварительную версию.


Помимо этого, представители Microsoft объявили о создании организации .Net Foundation, в которой были объединены 24 проекта .Net с открытым исходным кодом, том числе Roslyn. В задачи организации будет входить развитие open source-проектов .Net.

Стоит также добавить, что накануне Microsoft открыла исходный код Windows Library for JavaScript (WinJS) - каркаса, позволяющего создавать Windows-подобные приложения на основе веб-технологий для различных платформ.