LLVM

Mi az LLVM?

Mi az LLVM?

Mi az LLVM és miért hasznos?

Több mini projekt működik az LLVM égisze alatt. A mini projektek főként fordító technológiákkal foglalkoznak. Úgy tűnik, hogy van némi zavar az LLVM elnevezéssel kapcsolatban. Az emberek tévesen feltételezik, hogy a virtuális gépekhez kapcsolódik. Nincs kapcsolat. Az LLVM kifejezés nem jelent semmit. Ez csak egy név, amelyet a projekt elején használtak.

Az LLVM projekt az „UIUC” BSD-Style licenc alatt működik. A projekt az Illinoisi Egyetemen indult. Azóta népszerűségre tett szert, és sokféle projekthez használták. Különösen népszerű a tudományos körökben. A projekt fő célja SSA-alapú statikus és dinamikus összeállítás biztosítása a különböző programozási nyelvekről.

Íme az LLVM mini projektje:

  1. LLVM mag: Az alapvető könyvtárak optimalizáló és kódgeneráló támogatást nyújtanak a CPU-k számára. Az LLVM IR (Intermediate Representation) biztosítja az alapot a könyvtárak számára. A közösség jó munkát végzett az LLVM Core dokumentálásában. Így könnyedén felhasználhatja ezeket a könyvtárakat új programozási nyelvének létrehozásához, vagy egy meglévő fordító portjának létrehozásához. Ha ezekre a területekre szeretne kalandozni, akkor az LLVM Core jó kiindulópont.
  1. Csengés: Ez egy fordító, amely háromszor gyorsabb, mint a GCC. C, C ++ és C-objektumot célozza meg. A Clang hibákat és figyelmeztetéseket könnyebb megérteni. Statikus elemző eszközzel is rendelkezik. Maga a statikus elemző eszköz a Clang fordító segítségével épül fel.
  1. LLDB: Ez egy hibakereső. Gyorsabb és hatékonyabb, mint a GDB. A hibakereső a Clang és az LLVM Core segítségével készült.
  1. libc ++ és libc ++ ABI: A C ++ STD jobb megvalósítása.
  1. fordító-rt: Támogatja az alacsony szintű kódokat. Futásidejű könyvtárakkal is rendelkezik a dinamikus teszteléshez.
  1. OpenMP: Az Open Multi-Processing (OpenMP) egy API, amely segítséget nyújt a többszálas kezelésben. Ez a projekt támogatja az OpenMP natív futási idejét a Clang-nal együtt.
  1. Polly: Az LLVM világában ez egy magas szintű hurok- és adat-lokalizációs optimalizáló. Optimalizálja a programok memóriaelérési mintáit.
  1. libclc: Könyvtár az OpenCL számára.
  1. klee: Ez egy szimbolikus virtuális gép. A klee segítségével áthaladhat a program összes dinamikus útján, hogy problémákat találjon. A gép automatizált teszteseteket képes előállítani.
  1. BIZTONSÁGI KÓD: Ez egy fordító a C / C ++ számára, hogy garantálja a memória biztonságát. Remek eszköz a kiberbiztonsági szakértők számára a felfedezéshez. Segíthet a memóriabiztonsági hibák felderítésében.
  1. lld: Összekapcsolót épít a Clang-nal és az LLVM-mel való együttműködésre.

Az LLVM híresebb a bináris fájlok létrehozásában, mint a GCC. Az LLVM rendelkezik külső projektekkel is, amelyek felhasználhatók Python, Haskell, PHP, LUA, Ruby és más nyelvek fordításához. Az LLVM sokoldalú, rugalmas és újrafelhasználható megoldásnak számít. Tehát egyre népszerűbb a fejlesztői közösségben. JIT fordítóként használják beágyazott nyelvekhez. Az LLVM-et szuperszámítógépekhez is használják. A fejlesztői közösség széles körű támogatása robusztus eszközzé teszi.

A további vizsgálat:

Csata a Wesnothért 1.13.6 Megjelent a fejlesztés
Csata a Wesnothért 1.13.A múlt hónapban megjelent 6 a hatodik fejlesztési kiadás az 1-ben.13.x sorozat, és számos fejlesztést hajt végre, nevezetesen ...
A League of Legends telepítése az Ubuntu 14-re.04
Ha rajongsz a League of Legendsért, akkor ez egy lehetőség arra, hogy teszteld a League of Legends játékot. Ne feledje, hogy a LOL a PlayOnLinux rends...
Telepítse a legújabb OpenRA stratégiai játékot az Ubuntu Linux rendszerre
Az OpenRA egy ingyenes / ingyenes valós idejű stratégiai játékmotor, amely újjáépíti a korai Westwood játékokat, mint például a klasszikus Command & C...