Բոլոր նրանց համար, ում հետաքրքիր են կոմպիլյատորները։
(«Բոլո՜ր նրանց, ում որ հոգին վառվում է վառ...» Չ.)
Այս նախագիծը սկսելիս իմ նպատակը LLVM-ի ուսումնասիրությունն էր։ Ես պատրաստվում էի գրել BASIC լեզվի մի տարատեսակի կոմպիլյատոր, որը BASIC լեզվով գրված տեքստը թարգմանելու էր LLVM IR ներկայացման, և այդ IR-ը պետք է կատարվեր LLVM փաթեթի lli
ինտերպրետատորով (կամ llc
թարգմանիչով վերածվեր մեքենայական կոդի)։
Ծրագրավորման լեզուների իրականացմամբ հետաքրքրվողներն կարող են այստեղ գտնել.
- Լեզվի քերականության սահմանում,
- Աբստրակտ քերականական ծառի սահմանում (դասերի հիերարխիա),
- Բառային ու շարահյուսական վերլուծիչների իրականացում,
- Տիպերի ստուգման և դուրսբերման իրականացում,
- Աբստրակտ քերականական ծառից Լիսպ ներկայացման ստացում,
- Լիսպ ներկայացումից DOT ներկայացման ստացում,
- LLVM IR կոդի գեներացիա։
Պարտադիր է կարդալ Նիկլաուս Վիրտի Compiler construction-ը: