Книга: C# для профессионалов. Том II
Компиляция
Компиляция
Вы наверняка хорошо знаете, что компьютер никогда не выполняет напрямую код на любом языке высокого уровня, будь это VB, C++, С или любой другой язык. Вместо этого весь исходный код сначала транслируется в собственный исполнимый код машины с помощью процесса, обычно называемого компиляцией. При отладке VB предлагает возможность просто выполнить код сразу (то есть, когда каждая строка кода VB компилируется, или в этом случае говорят, что код интерпретируется, так как компьютер готов выполнить эту строку кода) либо произвести полную компиляцию (так, что вся программа сначала транслируется в исполнимый код, а затем начинается его реализация). Выполнение в начале полной компиляции означает, что все синтаксические ошибки обнаруживаются компилятором до того, как программа заработает. Это ведет к более высокой производительности и допускается только в C#.
В C# компиляция делается в два этапа, где первый этап выполняется на так называемом промежуточном языке (IL) Этот этап будем называть собственно компиляцией. Второй этап — преобразование в исполнимый код, происходящее во время выполнения, является более простым этапом, поэтому он не ведет к значительным потерям производительности. Он также не является интерпретацией. Сразу целые части кода преобразуются из IL в язык ассемблера, и полученный исполнимый код на собственном языке машины затем сохраняется, поэтому не требуется его перекомпиляции в следующий раз, когда будет выполняться эта часть кода. Компания Microsoft считает, что в комбинации с различными оптимизациями это, в конечном счете ведет к коду, который действительно выполнится быстрее, чем при использовании предыдущей системы прямой компиляции из исходного кода в собственный исполнимый код. Хотя о существовании IL необходимо помнить, он не будет влиять на обсуждение в этом приложении, так как он реально не влияет на синтаксис языка C#.
- 3.8.3. Компиляция ядра
- Компиляция ядра
- 15.2. Компиляция для отладки
- Компиляция и установка ядра
- Компиляция вне дерева исходных кодов ядра
- Почему компиляция?
- Компиляция регулярных выражений
- Компиляция Си-программы на IBM PC (компиляторы Microsoft С и Lattice С)
- Условная компиляция
- Компиляция с библиотекой curses
- 1.2.1. Компиляция одного исходного файла
- 1.4.1. Компиляция с включением отладочной информации