LLVM

Wikipedia
Loikkaa: valikkoon, hakuun

LLVM (alkuaan engl. Low Level Virtual Machine) on eräs ohjelmointikielten kääntäjien kehittämiseen tarkoitetuista infrastruktuureista. LLVM-järjestelmän avulla ohjelmakoodille voidaan suorittaa erilaisia optimointeja – käännöksen, linkityksen, ajon tai ohjelman joutenolon aikana.

LLVM toteuttaa kääntäjien toiminnan keski- ja loppuosan, eli toimenpiteet jotka ovat lähes samoja kaikkien konekieleksi käännettävien ohjelmien osalta. LLVM:n päälle voidaan rakentaa käännösprosessin "etupää", eli ohjelmointikielen tulkinta. Kääntäjäohjelma kutsuu LLVM-kirjastoa, joka tuottaa välikielen (Intermediate Form). LLVM-infrastruktuuri optimoi välikielen. Loppuvaiheessa välikieli muunnetaan kohdejärjestelmän konekieleksi.

LLVM oli aluksi suunniteltu GCC:n loppuvaiheiden korvaajaksi, joten monia GCC-pohjaisia kääntäjien etupäitä on muunnettu LLVM-pohjaisiksi. GCC:lle on myös olemassa laajennos nimeltä DragonEgg, jonka avulla GCC voi tuottaa LLVM-välikieltä. Monia kääntäjiä on kehitetty tukemaan suoraan LLVM-infrastruktuuria. LLVM-projektin oma C/C++/Objective-C -kääntäjä on Clang.

LLVM-projekti alkoi vuonna 2003 Illinois'n yliopistossa (Urbana–Champaign). Se on julkaistu BSD-lisenssin muunnoksella (University of Illinois/NCSA Open Source License). Nykyisin suurin LLVM:n kehittäjä on Apple; LLVM-järjestelmä onkin keskeinen komponentti uusimpien Mac OS X- ja iOS-järjestelmien kehitystyökaluissa.

Lyhenne LLVM tarkoitti alun pitäen "Low Level Virtual Machine", mutta projektin kasvaessa nimestä luovuttiin ja lyhenne ei nykyisin tarkoita mitään. LLVM on lähinnä brändi jota käytetään keskeisistä komponenteista: välikielestä (LLVM IF) ja sen käsittelystä, debuggerista (LLDB) ja LLVM:n omasta C++-kirjastosta.

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.