Лучшие вопросы
Таймлайн
Чат
Перспективы
GNU Lightning
Из Википедии, свободной энциклопедии
Remove ads
GNU Lightning — библиотека для быстрой генерации машинного кода во время исполнения программы (JIT-компиляции). Написана на языке Си.
Автор библиотеки GNU Ligtning — Paolo Bonzini. Она основана[3] на динамическом ассемблере ccg за авторством Ian Piumarta[4].
Remove ads
Назначение и особенности
Данная библиотека хорошо подходит для JIT-компиляции, однако, в отличие от таких инструментов, как LibJIT или LLVM, реализует более низкоуровневый подход. Lighting не использует какого-либо промежуточного представления программ, вроде байткода, но транслирует инструкции некоего абстрактного ассемблера виртуального RISC-процессора в машинный код одной из поддерживаемых архитектур. К таким архитектурам относятся i686, X86-64, MIPS, ARM, PowerPC, SPARC, IA-64 и hppa. Вследствие такой архитектуры библиотека не предоставляет каких-либо средств оптимизации.
Несмотря на машиннонезависимость набора инструкций поддерживаемого библиотекой виртуального ассемблера, он оперирует лишь с шестью целочисленными регистрами, а для операций с плавающей точкой используется специализированный стек[3]. Существует форк библиотеки, который называется MyJIT[5], в котором этих ограничений нет.
Remove ads
Использование
Библиотека используется в для реализации JIT-компиляции в частности в таких трансляторах, как Racket, GNU Smalltalk, и CLISP[6]; а также, начиная с версии 3.0[7], Guile[8].
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads