From Wikipedia (Ru) - Reading time: 3 min
| GNU Lightning | |
|---|---|
| | |
| Тип | библиотека функций и пакет GNU[вд] |
| Разработчик | Проект GNU |
| Написана на | Си[2] |
| Операционные системы | GNU/Linux[2], BSD[вд][2] и macOS[2] |
| Последняя версия | |
| Репозиторий | git.savannah.gnu.org/cgi… |
| Лицензия | LGPLv3.0+[вд][2] |
| Сайт | gnu.org/software/… (англ.) |
GNU Lightning — библиотека для быстрой генерации машинного кода во время исполнения программы (JIT-компиляции). Написана на языке Си.
Автор библиотеки GNU Ligtning — Paolo Bonzini. Она основана[3] на динамическом ассемблере ccg за авторством Ian Piumarta[4].
Данная библиотека хорошо подходит для JIT-компиляции, однако, в отличие от таких инструментов, как LibJIT или LLVM, реализует более низкоуровневый подход. Lighting не использует какого-либо промежуточного представления программ, вроде байткода, но транслирует инструкции некоего абстрактного ассемблера виртуального RISC-процессора в машинный код одной из поддерживаемых архитектур. К таким архитектурам относятся i686, X86-64, MIPS, ARM, PowerPC, SPARC, IA-64 и hppa. Вследствие такой архитектуры библиотека не предоставляет каких-либо средств оптимизации.
Несмотря на машиннонезависимость набора инструкций поддерживаемого библиотекой виртуального ассемблера, он оперирует лишь с шестью целочисленными регистрами, а для операций с плавающей точкой используется специализированный стек[3]. Существует форк библиотеки, который называется MyJIT[5], в котором этих ограничений нет.
Библиотека используется в для реализации JIT-компиляции в частности в таких трансляторах, как Racket, GNU Smalltalk, и CLISP[6]; а также, начиная с версии 3.0[7], Guile[8].
Sandeep Koranne. 13.5.5 GNU lightning // Handbook of Open Source Tools. — Springer, October 29, 2010. — P. 269-271. — 520 p. — ISBN 978-1-4419-7718-2.
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |