LLVM

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
LLVM
programari
Tipus Compilador
Desenvolupador LLVM Developer Group, Universitat d'Illinois (Urbana-Champaign)
Data de la primera versió 24 d’octubre de 2003
Última versió 11.0.0 (12 d'octubre de 2020 ; fa 10 mesos )
Sistema operatiu Multiplataforma
Llenguatge muntatge
C.
C ++
Llicència Llicència de codi obert de la Universitat d'Illinois
( llicència gratuïta )
Lloc web llvm.org

LLVM (antigament acrònim de Low Level Virtual Machine ) és una infraestructura de compilació, escrita en C ++ , dissenyada per optimitzar programes en temps de compilació, enllaç, temps d'execució i no ús. El projecte LLVM es va iniciar el 2000 a la Universitat d'Illinois.

LLVM actualment admet la recopilació de programes en C , C ++ , Objective C , Ada , Rust , Julia i Fortran , mitjançant front-ends derivats de les versions 4.0.1. i 4.2 del compilador GNU Compiler Collection (GCC). Actualment, s’està desenvolupant una interfície alternativa per als llenguatges de programació tipus C sota el nom de clang .

Mitjançant LLVM, el programador pot crear una màquina virtual per als llenguatges que ho requereixin (com ara Java ), un compilador per a una arquitectura específica i un programari d’optimització de codi independent del tipus de llenguatge utilitzat o de la plataforma. La representació intermèdia LLVM (IR) és independent tant del llenguatge com de l'arquitectura; intervé entre el codi font en un idioma determinat i un generador de codi per a una arquitectura específica. LLVM inclou suport per a l'optimització de codis entre procediments i compiladors estàtics i just in time .

Té diversos components que tracten les diferents etapes del desenvolupament; entre ells, esmentem les interfícies dels llenguatges de codis byt de Java , CIL , Python i Julia . El compilador LLVM just-in-time és capaç d’optimitzar parts del programa en temps d’execució i, per tant, és útil en els casos en què es vulgui avaluar l’eficiència d’una sola funció. Gràcies a aquesta peculiaritat, s’utilitza a la canonada Leopard OpenGL de Mac OS X per admetre algunes funcions que no existeixen a nivell de maquinari.

És el compilador per defecte de l' IDE Xcode a partir de la versió 4.2.

Representació del codi

LLVM utilitza el seu propi conjunt d’instruccions independentment dels llenguatges de programació. La majoria de les instruccions tenen un formulari similar al codi de les tres adreces . Cada enunciat està estructurat de manera que assigna un valor a una variable determinada només una vegada: això ajuda a simplificar l’anàlisi de dependències entre variables.

Qualsevol forma de canviar el tipus d’una variable o objecte es fa mitjançant l’ús de la sentència cast . LLVM fa ús de tipus essencials, com els enters, i 5 tipus derivats: punter , matriu , vectors , estructures i funcions . Aquests tipus es poden utilitzar per representar construccions més complexes pertanyents a llenguatges de programació d'alt nivell. Per exemple, una classe en C ++ es pot representar mitjançant una combinació d’estructures, funcions i matrius.

Llicència

LLVM i clang estan disponibles públicament sota la llicència de codi obert de la Universitat d'Illinois [1] , una llicència compatible amb la GPL .

Articles relacionats

Altres projectes

Enllaços externs

Programari lliure Portal de programari lliure : accediu a les entrades de Viquipèdia relacionades amb programari lliure