WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

GNU Lightning — библиотека для быстрой генерации машинного кода во время исполнения программы (JIT-компиляции). Написана на языке Си.

Автор библиотеки GNU Ligtning — Paolo Bonzini. Она основана[1] на динамическом ассемблере ccg за авторством Ian Piumarta[2].

Назначение и особенности

Данная библиотека хорошо подходит для JIT-компиляции, однако, в отличие от таких инструментов, как LibJIT или LLVM, реализует более низкоуровневый подход. Lighting не использует какого-либо промежуточного представления программ, вроде байткода, но транслирует инструкции некоего абстрактного ассемблера виртуального RISC-процессора в машинный код одной из поддерживаемых архитектур. К таким архитектурам относятся i686, X86-64, MIPS, ARM, PowerPC, SPARC, IA-64 и hppa. Вследствие такой архитектуры библиотека не предоставляет каких-либо средств оптимизации.

Несмотря на машиннонезависимость набора инструкций поддерживаемого библиотекой виртуального ассемблера, он оперирует лишь с шестью целочисленными регистрами, а для операций с плавающей точкой используется специализированный стек[1]. Существует форк библиотеки, который называется MyJIT[3], в котором этих ограничений нет.

Использование

Библиотека используется в для реализации JIT-компиляции в частности в таких трансляторах, как Racket, GNU Smalltalk, и CLISP[4]; а также, начиная с версии 3.0[5], Guile[6].

Примечания

  1. 1 2 George Almasi, David A. Padua. MaJIC: A Matlab Just-In-Time Compiler // Languages and Compilers for Parallel Computing 13th International Workshop, LCPC 2000 Yorktown Heights, NY, USA. Springer, August 10–12, 2000 Revised Papers. С. 75. ISBN 978-3-540-42862-6.
  2. Ian Piumarta. ccg: dynamic code generation for C and C++ (Sun May 01 2004). Проверено 22 января 2014.
  3. MyJIT
  4. Implementation notes for GNU CLISP. Проверено 23 февраля 2009.
  5. Версия 3.0 находится в разработке, с октября 2018 года доступна версия GNU Guile 2.9.1 (beta) c реализацией JIT-компиляции для архитектуры x86-64.
  6. GNU Guile 2.9.1 Released [beta]. lists.gnu.org. Проверено 11 октября 2018.

Литература

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.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии