GNU Lightning

GNU Lightning  er et bibliotek til hurtigt at generere maskinkode under kørsel ( JIT - kompilering). Skrevet i C -sprog .

Forfatteren af ​​GNU Ligtning-biblioteket er Paolo Bonzini. Den er baseret [1] på den dynamiske assembler ccg af Ian Piumarta [2] .

Formål og funktioner

Dette bibliotek er velegnet til JIT-kompilering , men i modsætning til værktøjer som LibJIT eller LLVM implementerer det en mere lav-niveau tilgang. Lighting bruger ikke nogen mellemrepræsentation af programmer, såsom bytecode , men oversætter instruktionerne fra en abstrakt assembler virtuel RISC-processor til maskinkode for en af ​​de understøttede arkitekturer. Sådanne arkitekturer omfatter i686 , X86-64 , MIPS , ARM , PowerPC , SPARC , IA-64 og hppa . På grund af denne arkitektur giver biblioteket ingen optimeringer .

På trods af maskinuafhængigheden af ​​instruktionssættet, der understøttes af det virtuelle assembler-bibliotek, fungerer det med kun seks heltalsregistre , og en specialiseret stak bruges til flydende kommaoperationer [1] . Der er en forgrening af biblioteket kaldet MyJIT [3] , som ikke har disse begrænsninger.

Brug

Biblioteket bruges til at implementere JIT-kompilering i særlige compilere såsom Racket , GNU Smalltalk og CLISP [4] ; og også, siden version 3.0 [5] , Guile [6] .

Noter

  1. 1 2 George Almasi, David A. Padua. MAJIC: En Matlab Just-In-Time Compiler  // Sprog og compilere til Parallel Computing 13th International Workshop, LCPC 2000 Yorktown Heights, NY, USA. — Springer , August 10-12, 2000 Revided Papers. - S. 75 . - ISBN 978-3-540-42862-6 . Arkiveret fra originalen den 13. juni 2018.
  2. Ian Piumarta. ccg: dynamisk kodegenerering for C og C++ (søn 1. maj 2004). Dato for adgang: 22. januar 2014. Arkiveret fra originalen 19. juni 2014.
  3. MyJIT . Hentet 22. januar 2014. Arkiveret fra originalen 25. juni 2014.
  4. Implementeringsnoter til GNU CLISP . Hentet 23. februar 2009. Arkiveret fra originalen 1. december 2001.
  5. Version 3.0 er under udvikling, GNU Guile 2.9.1 (beta) er tilgængelig siden oktober 2018 med implementering af JIT-kompilering til x86-64-arkitektur .
  6. GNU Guile 2.9.1 udgivet [beta ] . lists.gnu.org. Hentet 11. oktober 2018. Arkiveret fra originalen 12. oktober 2018.

Litteratur

Sandeep Koranne. 13.5.5 GNU lightning // Håndbog i Open Source-værktøjer . - Springer, 29. oktober 2010. - S. 269-271. - 520 sider. — ISBN 978-1-4419-7718-2 .

Links