Компілятор Roslyn - Блог ITVDN
ITVDN: курси програмування
Відеокурси з
програмування

    Обери свою IT спеціальність

    Підписка

    Обери свою IT спеціальність

    Підписка

      Компілятор Roslyn

      advertisement advertisement

      Введение

      Roslyn – это компилятор с открытым исходным кодом для C# и Visual Basic. Roslyn представляет из себя библиотеку (API), интегрируемую в проект. Данный компилятор не имеет ничего общего с CLR. Таким образом, он может скомпилировать код с преобразованием в Intermediate Language для последующей передачи в CLR.


      Установка компилятора

      Для установки Roslyn Вам нужно скачать и установить­­ Visual Studio 2015 Preview (рекомендуется установка на виртуальной машине). Затем перейдите на страницу проекта Roslyn и скачайте исходный код. Распаковав файл, Вы увидите папку с несколькими файлами и папками в ней. Нас интересует только папка Src:

      Папка с файлами

      Дважды щелкните на Roslyn.sln для загрузки проекта. После этого настройте solution в VS и перейдите в Roslyn/Binaries/Debug:

      Папка с файлами

      Использование компилятора

      Каждый, кто использует C#, наверняка знаком с csc.exe. Посмотрев на дату создания файла, Вы увидите, что одновременно с открытием проекта Roslyn скомпилировался csc.exe. Как мы этим будем пользоваться?

      Использование компилятора

      Запустив файл csc из командной строки, Вы увидите ошибку:

      C:\Users\Michael\Documents\Visual Studio 2015\Projects\roslyn\Binaries\Debug>csc

      Microsoft (R) Visual C# Compiler version 1.0.0.0

      Copyright (C) Microsoft Corporation. All rights reserved.

      warning CS2008: No source files specified.

      error CS1562: Outputs without source must have the /out option specified

      C:\Users\Michael\Documents\Visual Studio 2015\Projects\roslyn\Binaries\Debug>

      Тут нечему удивляться, поскольку Вы не указали исходный файл для компиляции. Теперь можно посмотреть ошибки и предупреждения в нашем исходном коде.

      Если мы будем искать текст Outputs without source must have the /out option specified, то мы найдем место в коде, выдающее нам ошибку. В этом случае ошибка исходит из класса ResourceManager.

      Окно с ошибкой

      Разбираем пример

      Скачайте и установите:

      •       Visual Studio 2015 Preview SDK

      •       Visual Studio Project Templates для Roslyn

      •       Syntax Visualizer для Roslyn

      После установки откройте Visual Studio 2015 Preview и выберите шаблон “Compiler Platform Console Application”:

      Открытие файла

      Добавьте следующий код в Main:

      public static void Main(string[] args)

       {

           SyntaxTree tree = CSharpSyntaxTree.ParseText(

           @"using System;

           using System.Collections.Generic;

           using System.Text;

           namespace HelloWorld

           {

               class Program

               {

                   static void Main(string[] args)

                   {

                       Console.WriteLine(""Hello, TDN!"");

                   }

               }

           }");

           var root = (CompilationUnitSyntax)tree.GetRoot();

           var compilation = CSharpCompilation.Create("HelloTDN")

                  .AddReferences(references: new[] { MetadataReference.CreateFromAssembly(typeof(object).Assembly) })

                  .AddSyntaxTrees(tree);

       }

      Установите точку остановки (breakpoint) на последней фигурной скобке и запустите Syntax Visualizer через меню View -> Other Windows -> Roslyn Syntax Visualizer. Вы увидите следующее:

      Окно Roslyn Syntax Visualizer

      Запустите приложение и перейдите в верхнюю часть документа. Нажмите на объявленный SyntaxTree, и он перенаправит Вас на часть кода, в котором содержится большая часть информации. В нашем примере мы рассматриваем Leading и Trailing WhiteSpace.

      Объявление SyntaxTree

      Теперь мы увидели процесс компиляции с помощью Roslyn.

      Выводы

      Roslyn - это отличный метод получения полезной информации о нашем исходном коде. Он предоставляет множество функциональных возможностей, например: IntelliSence, переформатирование кода и т.д. Также он обеспечивает совместимость языков. Данный функционал дает много возможностей для инноваций в таких областях, как мета-программирование, генерация кода и его преобразование, интерактивное использование языков C# и Visual Basic.

      Источник: http://developer.telerik.com/featured/roslyn-nutshell/

      КОМЕНТАРІ ТА ОБГОВОРЕННЯ
      advertisement advertisement

      Купуй передплатуз доступом до всіх курсів та сервісів

      Бібліотека сучасних IT знань у зручному форматі

      Вибирай свій варіант підписки залежно від завдань, що стоять перед тобою. Але якщо потрібно пройти повне навчання з нуля до рівня фахівця, краще вибирати Базовий або Преміум. А для того, щоб вивчити 2-3 нові технології, або повторити знання, готуючись до співбесіди, підійде Пакет Стартовий.

      Стартовий
      • Усі відеокурси на 3 місяці
      • Тестування з 10 курсів
      • Перевірка 5 домашніх завдань
      • Консультація з тренером 30 хв
      59.99 $
      Придбати
      Базовий
      • Усі відеокурси на 6 місяців
      • Тестування з 16 курсів
      • Перевірка 10 домашніх завдань
      • Консультація з тренером 60 хв
      54.00 $
      89.99 $
      Придбати
      Акція
      Преміум
      • Усі відеокурси на 1 рік
      • Тестування з 24 курсів
      • Перевірка 20 домашніх завдань
      • Консультація з тренером 120 хв
      85.00 $
      169.99 $
      Придбати
      Акція
      Notification success
      Ми використовуємо cookie-файли, щоб зробити взаємодію з нашими веб-сайтами та послугами простою та значущою.