войти зарегистрироваться

Язык программирования PythonUnladen Swallow 2009Q3

Тихо и совершенно, как говорится, незаметно, запоздало вышла ветка 2009Q3 интересного и перспективного проекта Unladen Swallow.

Языки программированияОбзор LLVM

LLVM (Low Level Virtual Machine) — это универсальная система анализа,
трансформации и оптимизации программ или, как её называют разработчики,
«compiler infrastucture».

LLVM — не просто очередной академический проект. Его история началась в 2000
году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии
как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X
10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из
основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает
в Apple.

В основе LLVM лежит промежуточное представление кода (intermediate
representation, IR), над которым можно производить трансформации во время
компиляции, компоновки (linking) и выполнения. Из этого представления
генерируется оптимизированный машинный код для целого ряда платформ, как
статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода
для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.

LLVM написана на C++ и портирована на большинство *nix-систем и Windows.
Система имеет модульную структуру и может расширяться дополнительными
алгоритмами трансформации (compiler passes) и кодогенераторами для новых
аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и
использует C++ API для генерации кода и его преобразований. Однако LLVM включает
в себя и standalone утилиты.

Для тех, кто не без оснований считает C++ не лучшим языком для написания
компиляторов, с недавних пор в LLVM включена обертка API для OCaml.

Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся
работать, давайте разберёмся,

Блог им. vakLLVM 2.0 вышел

в продолжение к хабротопику об LLVM: новый релиз LLVM 2.0 вышел 23 мая 2007г и содержит множество нововведений.

Будущее здесьК концу месяца ожидается выход LLVM 2.0

Чего бы ради писать сюда о проекте, который сегодня едва ли разрывает будущее на куски своим неуёмным развитием? Дело в том, что наверняка в будущее можно въезжать также и неспешно, — но всерьёз и надолго.

Low Level Virtual Machine (LLVM) — это основа для разработчиков языков. Может back-end, может middleware — решайте сами.