A GNU Lightning egy könyvtár a gépi kód gyors generálására futás közben ( JIT fordítás ). C nyelven írva .
A GNU Ligtning könyvtár szerzője Paolo Bonzini. Ez Ian Piumarta [2] dinamikus assembler ccg-jén alapul [1 ] .
Ez a könyvtár kiválóan alkalmas JIT fordításra , azonban az olyan eszközökkel ellentétben, mint a LibJIT vagy az LLVM , alacsonyabb szintű megközelítést valósít meg. A Lighting nem használja a programok köztes ábrázolását, például a bytecode -ot , hanem lefordítja néhány absztrakt assembler virtuális RISC processzor utasításait valamelyik támogatott architektúra gépi kódjára. Ilyen architektúrák közé tartozik az i686 , X86-64 , MIPS , ARM , PowerPC , SPARC , IA-64 és hppa . Ennek az architektúrának köszönhetően a könyvtár nem biztosít optimalizálást .
A virtuális assembler könyvtár által támogatott utasításkészlet gépi függetlensége ellenére csak hat egész regiszterrel működik, és a lebegőpontos műveletekhez egy speciális verem használható [1] . Van egy MyJIT [3] nevű könyvtár , amely nem rendelkezik ilyen korlátozásokkal.
A könyvtár a JIT fordítás megvalósítására szolgál, különösen olyan fordítóknál, mint a Racket , a GNU Smalltalk és a CLISP [4] ; valamint a 3.0-s verzió óta [5] , Guile [6] .
Sandeep Koranne. 13.5.5 GNU lightning // Nyílt forráskódú eszközök kézikönyve . - Springer, 2010. október 29. - P. 269-271. - 520 p. — ISBN 978-1-4419-7718-2 .