Библиотека сайта rus-linux.net
Цилюрик О.И. Linux-инструменты для Windows-программистов | ||
Назад | Компиляция и сборка приложений | Вперед |
Компиляция и сборка приложений
- а). компилятор CC из состава IDE SolarisStudio,
- б). активно развивающийся в рамках проекта LLVM компилятор Clang (кандидат для замены GCC в FreeBSD, причина — лицензия),
- в). PCC (Portable C Compiler) — новая реализация компилятора 70-х годов, широко практикуемый в NetBSD и OpenBSD.
GCC имеет значительные синтаксические расширения (главным из которых являются инлайновые ассемблерные вставки), не распознаваемые другими компиляторами - поэтому альтернативные компиляторы вполне пригодны для сборки приложений, но непригодны для пересборки ядра Linux и сборки модулей ядра.
Начало GCC было положено Ричардом Столлманом, который реализовал первый вариант GCC в 1985 на нестандартном и непереносимом диалекте языка Паскаль; позднее компилятор был переписан на языке Си Леонардом Тауэром и Ричардом Столлманом и выпущен в 1987 как компилятор для проекта GNU (http://ru.wikipedia.org/wiki/GCC).
Официальный сайт GCC - http://gcc.gnu.org/:
The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Java, Ada, and Go, as well as libraries for these languages
(libstdc++, libgcj,...).
- на начальной стадии (front end) лексического анализатора, в зависимости от языка программирования, происходит синтаксическое распознавание исходного кода и преобразование к структурам на основе деревьев, и промежуточному RTL-представлению (RTL - Register Transfer Language, язык межрегистровых пересылок), напоминающему S-выражения языка LISP.
- конечная стадия (back end) генерации кода принимает с предыдущей стадии языково независимые RTL-инструкции и создает код, работающий на заданной платформе.
Существуют дополнительные front-end’ы для языков Pascal, D, Модула-2, Modula-3, Mercury, VHDL и PL/1.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Команды диагностики оборудования | Компилятор GCC |