LLVM

Kas yra LLVM?

Kas yra LLVM?

Kas yra LLVM ir kodėl tai naudinga?

Keli mini projektai dirba po LLVM skėčiu. Mini projektai daugiausia susiję su kompiliatorių technologijomis. Atrodo, kad yra tam tikra painiava dėl LLVM pavadinimo. Žmonės klaidingai mano, kad tai susiję su virtualiomis mašinomis. Nėra ryšio. Terminas LLVM nieko nereiškia. Tai tik pavadinimas, kuris buvo naudojamas projekto pradžioje.

LLVM projektas vykdomas pagal „UIUC“ BSD stiliaus licenciją. Projektas atsirado Ilinojaus universitete. Nuo tada jis įgijo populiarumą ir buvo naudojamas įvairiems projektams. Tai ypač populiaru akademiniuose sluoksniuose. Pagrindinis projekto tikslas - pateikti SSA pagrįstą statinį ir dinaminį įvairių programavimo kalbų kompiliavimą.

Čia yra LLVM mini projektas:

  1. LLVM šerdis: Pagrindinės bibliotekos teikia procesorių optimizavimo ir kodų generavimo palaikymą. LLVM IR (tarpinė atstovybė) suteikia bibliotekoms pagrindą. Bendruomenė atliko gerą darbą dokumentuodama LLVM Core. Taigi galite lengvai naudoti šias bibliotekas kurdami naują programavimo kalbą arba kurdami esamo kompiliatoriaus prievadą. Jei norite leistis į šias teritorijas, „LLVM Core“ yra gera vieta pradėti.
  1. Clang: Tai kompiliatorius, kuris yra tris kartus greitesnis nei GCC. Jis nukreiptas į C, C ++ ir C tikslą. „Clang“ klaidas ir įspėjimus lengviau suprasti. Jis taip pat turi statinio analizatoriaus įrankį. Pats statinio analizatoriaus įrankis sukurtas naudojant „Clang“ kompiliatorių.
  1. LLDB: Tai derintuvas. Tai greitesnis ir efektyvesnis nei GDB. Derintuvas sukurtas naudojant „Clang“ ir „LLVM Core“.
  1. libc ++ ir libc ++ ABI: Geresnis C ++ STD įgyvendinimas.
  1. kompiliatorius-rt: Tai palaiko žemo lygio kodus. Jame taip pat yra vykdymo laiko bibliotekos, skirtos dinaminiam testavimui.
  1. „OpenMP“: „Open Multi-Processing“ („OpenMP“) yra API, padedanti atlikti daugialypį gijimą. Šis projektas palaiko įprastą „OpenMP“ vykdymo laiką, kuris bus naudojamas su „Clang“.
  1. Polly: LLVM pasaulyje tai yra aukšto lygio ciklo ir duomenų lokalizavimo optimizavimo priemonė. Tai optimizuoja atminties programų modelius.
  1. libclc: „OpenCL“ biblioteka.
  1. klee: Tai simbolinė virtuali mašina. Klee galite naudoti norėdami pereiti visus dinaminius programos kelius, kad rastumėte problemų. Mašina gali gaminti automatizuotus bandymų atvejus.
  1. SAUGOS KODAS: Tai C / C ++ kompiliatorius, garantuojantis atminties saugumą. Tai puiki priemonė kibernetinio saugumo ekspertams tyrinėti. Tai gali padėti aptikti atminties saugos klaidas.
  1. lld: Jis kuria sąsają darbui su Clang ir LLVM.

LLVM turi reputaciją kurdama švaresnius dvejetainius failus nei PĮBT. Be to, LLVM turi išorinių projektų, kuriuos galima naudoti sudarant Python, Haskell, PHP, LUA, Ruby ir kitas kalbas. LLVM laikomas universaliu, lanksčiu ir daugkartinio naudojimo sprendimu. Taigi jis populiarėja vystymosi bendruomenėje. Jis naudojamas kaip JIT kompiliatorius įterptoms kalboms. LLVM taip pat naudojamas superkompiuteriams. Platus kūrėjų bendruomenės palaikymas daro tai patikima priemone.

Tolesnis tyrimas:

Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...
Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...