Értékelés:

A könyv átfogó bevezetést nyújt az LLVM-be a fordítóprogram-fejlesztők számára, különösen azok számára, akiknek van némi C++ háttérismeretük. Bár a fordítófejlesztés témáinak széles skáláját öleli fel, nem mélyül el egyetlen területen sem. A könyv jól szervezett, és gyakorlati projekteket, valamint kiegészítő videóforrásokat tartalmaz. Ugyanakkor a programozásban teljesen kezdők számára kihívást jelenthet, és tartalmaz néhány triviális tartalmat, amely nem minden olvasó számára lehet hasznos.
Előnyök:⬤ Jól szervezett szerkezet és logikus felépítés.
⬤ Az LLVM témák széles körét lefedi (front-endtől a back-endig).
⬤ Alkalmas C++ ismeretekkel és némi fordítóprogram-fejlesztési tapasztalattal rendelkező olvasók számára.
⬤ Gyakorlati projekteket és „Code in action” videókat tartalmaz a gyakorlati tanuláshoz.
⬤ Tárgyalja az LLVM új funkcióit, így aktuális és naprakész.
⬤ Nem alkalmas teljesen kezdők számára, akiknek nincs programozási tapasztalatuk.
⬤ Néhány triviális tartalom a tapasztalt olvasók számára időveszteséget okozhat.
⬤ Hiányzik a speciális LLVM-témák mélyreható tárgyalása, amelyre a haladó felhasználóknak vagy azoknak lehet szükségük, akik hozzá kívánnak járulni az LLVM-hez.
(6 olvasói vélemény alapján)
Learn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++
Megtanulja, hogyan építse és használja a valós fordítók minden részét, beleértve a frontendet, az optimalizációs csővezetéket és egy új backendet az LLVM magkönyvtárak erejét kihasználva
Főbb jellemzők:
⬤ Lépésről lépésre ismerkedjen meg az LLVM könyvtárak hatékony használatával.
⬤ Tanulja meg az LLVM fordító magas szintű tervezését, és alkalmazza ugyanazokat az elveket a saját fordítójára.
⬤ Használja a fordító alapú eszközöket a C++ projektek kódminőségének javítására.
A könyv leírása:
Az LLVM azért készült, hogy áthidalja a fordítókönyvek és a tényleges fordítófejlesztés közötti szakadékot. Moduláris kódbázist és fejlett eszközöket biztosít, amelyek segítségével a fejlesztők könnyen készíthetnek fordítókat. Ez a könyv gyakorlatias bevezetést nyújt az LLVM-be, fokozatosan segít könnyedén eligazodni az összetett forgatókönyvekben, amikor fordítóprogramok készítéséről és a fordítóprogramokkal való munkáról van szó.
Az LLVM könyvtárak, eszközök és külső projektek konfigurálásával, építésével és telepítésével kezdjük. Ezután a könyv megismerteti Önt az LLVM tervezésével és azzal, hogyan működik a gyakorlatban az LLVM fordító egyes fázisaiban: frontend, optimalizáló és backend. Ezután egy valós programozási nyelv egy részhalmazának példáján keresztül megtanulja, hogyan fejlesszen ki egy frontendet és generáljon LLVM IR-t, adja át azt az optimalizáló csővezetéknek, és hogyan generáljon belőle gépi kódot. A későbbi fejezetek megmutatják, hogyan lehet az LLVM-et új átmenettel bővíteni, és hogyan működik az utasításkiválasztás az LLVM-ben. A Just-in-Time fordítással kapcsolatos kérdésekre és az LLVM által nyújtott JIT-kompilációs támogatás jelenlegi állapotára is kitér, mielőtt végül megérti, hogyan fejlesszen ki egy új backendet az LLVM számára.
Ennek az LLVM-könyvnek a végére gyakorlati példák és forráskódrészletek segítségével valós tapasztalatokat szerezhet az LLVM fordítóprogram-fejlesztő keretrendszerrel való munkában.
Mit fog tanulni:
⬤ Konfigurálja, fordítsa le és telepítse az LLVM keretrendszert.
⬤ Megérti, hogyan szerveződik az LLVM forráskódja.
⬤ Felfedezi, hogy mit kell tennie ahhoz, hogy az LLVM-et saját projektjeiben használhassa.
⬤ Felfedezze, hogyan épül fel egy fordító, és implementáljon egy apró fordítót.
⬤ LLVM IR generálása a közös forrásnyelvi konstrukciókhoz.
⬤ Optimalizálási csővezeték beállítása és saját igényeihez igazítása.
⬤ Kibővítheti az LLVM-et transzformációs átmenetekkel és clang eszközökkel.
⬤ Adjunk hozzá új gépi utasításokat és egy teljes háttértárat.
Kinek szól ez a könyv:
Ez a könyv olyan fordítóprogram-fejlesztőknek, rajongóknak és mérnököknek szól, akik újak az LLVM-ben, és érdeklődnek az LLVM keretrendszer megismerése iránt. Hasznos továbbá a C++ szoftvermérnökök számára, akik fordítóalapú eszközöket szeretnének használni a kódelemzéshez és -javításhoz, valamint az LLVM könyvtárak alkalmi felhasználóinak, akik szeretnének bővebb ismereteket szerezni az LLVM alapvető tudnivalóiról. A C++ programozásban szerzett középszintű tapasztalat kötelező a könyvben tárgyalt fogalmak hatékonyabb megértéséhez.