Новость из категории: Информация

Clang и LLVM - у GCC есть конкурент

Содержание:
1. Матчасть (Вы читаете данный раздел);
2. Предыстория;
3. Настоящее и итоги.
Clang и LLVM - у GCC есть конкурент

Связку Clang и LLVM часто упоминают как замену GCC - не сейчас, но в перспективе. Что же такое Clang и LLVM, на какой стадии развития находятся и каковы преимущества и недостатки в сравнении с GCC? Попробуем разобраться.

Следует так же отметить, что локализация (http://www.t-link.ru/services/localization/) документации по Clang и LLVM вряд ли появится в обозримом будущем, так что приступать к работе с ними без знания английского - пустая трата времени.

Матчасть

Для начала - небольшое предварение. Как происходит сборка программы (из исходного кода в бинарный вид) при помощи GCC? Упрощенно говоря, дело обстоит так:
- Фронтэнд для конкретного языка программирования переводит исходник в промежуточную форму.
- Бэкэнд переводит промежуточную форму в ассемблер целевой платформы, который затем компилируется в объектный код, а тот компонуется «линкером», подставляющим вместо идентификаторов (например, имен функций) конкретные адреса. Попутно компоновщик собирает множество объектных файлов в один. Так получается бинарник.

Clang и LLVM - у GCC есть конкурент

В GCC язык описания промежуточной формы называется GIMPLE (подробнее читайте на http://gcc.gnu.org/onlinedocs/ gcc-4.0.0/gccint/GIMPLE.html). GIMPLE похож на эдакий Си, но с уклоном в ассемблер: появляется множество goto, лаконичные «сишные» конструкции подробно расписываются в более длинные, упрощенные - выглядят они как объяснение чего-либо буквально на пальцах. Аналогично в связке Clang и LLVM: Clang является фронтэндом, а LLVM (Low Level Virtual Machine) -бэкэндом. LLVM, кроме прочего, может принимать промежуточную форму и от фронтэндов GCC. Говоря далее о Clang, я буду подразумевать пару Clang/LVVM. Альтернативный компилятор - это, кажется, очень здорово. Но только с одной стороны. С другой - вот та же библиотека SDL под Windows больше дружит с Visual C++, нежели с MinGW. А был бы один MinGW, кое-кто не ломал бы себе голову...

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх