LLVM | |
---|---|
Lasta stabila versio | 19.1.6 |
Programlingvo | C++, C, asembla lingvo |
Permesilo | Permesilo de Apache, Versio 2.0 |
Retejo | llvm |
La projekto LLVM de tradukila infrastrukturo (antaŭe maLaLta Virtuala Maŝino) estas "kolekto de modula kaj reuzebla tradukiloj kaj ĉenilaj teknologioj" uzita por evoluigi tradukilaj facadaj interfacoj kaj internaj interfacoj.[1]
LLVM estas skribita per C++ kaj estas desegnita por traduk-tempa, lig-tempa, rul-tempa kaj vak-tempa optimigo de programaroj skribitaj per arbitraj programlingvoj. Originale efektivigita por C kaj C++, la lingvo-sendependa desegno de LLVM poste starigis larĝan varion de facadaj interfacoj: lingvoj kun tradukiloj kiuj uzas LLVM inkludas ActionScript, Ada, C#, Ofta Lisp, Crystal, D, Delphi, Fortran, OpenGL Ombranta Lingvon, Halide, Haskell, Java bytecode, Julia, Lua, Objektiva-C, Pony, Python, R, Ruby, Rust, CUDA, Scala kaj Swift[2][3][4] [5][6].
La LLVMa projekto komencis dum 2000 ĉe la Universitato de Ilinojso ĉe Urbana–Champaign, sub la direkto de Vikram Adve kaj Chris Lattner. LLVM estis originale evoluigita kiel esplora infrastrukturo prienketi dinamikajn kompilajn teknikojn por statika kaj dinamika programlingvoj. LLVM estis liberigita sub la malfermita kodlicencoj de Universitato de Ilinojsa kaj NCSA, ĉiopermesa libera programara licenco.[7] Dum 2005, Apple Inc. dungitis Lattner kaj formis teamon por labori pri la LLVMa sistemo por diversaj uzoj ene de la evoluadaj sistemoj de Apple[8]. LLVM estas integrita parto de plej lastaj evoluadaj iloj de Apple por OS X kaj iOS[9]. Ekde 2013 Sony uzis Clang, la ĉefan facada interfaco de LLVM en la programara disvolvada ilara de ĝia PS4 Videoludilo[10].
La nomo LLVM estis originale siglo el maLalta niveLa Virtuala Maŝino, sed tio devenis kreske malpli taŭga dum LLVM fariĝis "kadra projekto", kiu inkludis varion de aliaj tradukiloj kaj malalta-nivelaj ilaj teknologioj, do la projekto forlasis la akronimo[11]. Nun, LLVM estas marko kiu aplikas al la LLVMa kadra projekto, la LLVMa meza prezento, la LLVMa erarserĉilo, la LLVM C++ Norma Biblioteko (kun plena subteno de C++11 kaj C++14), ktp[12]. LLVM estas administrita de la LLVMa Fondaĵo. Ĝia prezidanto estas tradukila inĝeniero Tanya Lattner.[13]
La Asocio por Komputanta Maŝinaron donacis al Adve, Lattner kaj Evan Cheng la 2012an ACMan Programaran Sisteman Premion por LLVM[14].