GNU lightning
Encyclopedia
GNU lightning is a free software library that generates assembly language
code at run-time. Supported backends are SPARC
(32-bit), x86 (32- and 64-bit) and PowerPC
(32-bit). An ARM port is under way.
and MIPS
into the target architecture's machine language.
, and CLISP
make use of GNU lightning for just-in-time compilation
.
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
code at run-time. Supported backends are SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
(32-bit), x86 (32- and 64-bit) and PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
(32-bit). An ARM port is under way.
Advantages Over Other Libraries
The features GNU lightning provides make it useful for just-in-time compiler applications. As opposed to libraries such as LLVM or libJIT, it only provides a low-level interface that assembles a standardized RISC architecture loosely based on the SPARCSPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
and MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
into the target architecture's machine language.
Disadvantages
It does not provide register allocation, data-flow, and control-flow analysis, or optimization.Projects that use GNU Lightning
Racket, GNU SmalltalkGNU Smalltalk
GNU Smalltalk is an implementation of the Smalltalk programming language by the GNU Project.The implementation, unlike other Smalltalk environments, uses text files for program input and interprets the contents as Smalltalk code...
, and CLISP
CLISP
In computing, CLISP is an implementation of the programming language Common Lisp originally developed by Bruno Haible and Michael Stoll for the Atari ST...
make use of GNU lightning for just-in-time compilation
Just-in-time compilation
In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...
.