armenbadal / basic-ir

BASIC լեզվի կոմպիլյատոր LLVM IR լեզվի

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BASIC լեզվի կոմպիլյատոր LLVM IR լեզվի

Բոլոր նրանց համար, ում հետաքրքիր են կոմպիլյատորները։
(«Բոլո՜ր նրանց, ում որ հոգին վառվում է վառ...» Չ.)


Այս նախագիծը սկսելիս իմ նպատակը LLVM-ի ուսումնասիրությունն էր։ Ես պատրաստվում էի գրել BASIC լեզվի մի տարատեսակի կոմպիլյատոր, որը BASIC լեզվով գրված տեքստը թարգմանելու էր LLVM IR ներկայացման, և այդ IR-ը պետք է կատարվեր LLVM փաթեթի lli ինտերպրետատորով (կամ llc թարգմանիչով վերածվեր մեքենայական կոդի)։

Ծրագրավորման լեզուների իրականացմամբ հետաքրքրվողներն կարող են այստեղ գտնել.

  • Լեզվի քերականության սահմանում,
  • Աբստրակտ քերականական ծառի սահմանում (դասերի հիերարխիա),
  • Բառային ու շարահյուսական վերլուծիչների իրականացում,
  • Տիպերի ստուգման և դուրսբերման իրականացում,
  • Աբստրակտ քերականական ծառից Լիսպ ներկայացման ստացում,
  • Լիսպ ներկայացումից DOT ներկայացման ստացում,
  • LLVM IR կոդի գեներացիա։

Պարտադիր է կարդալ Նիկլաուս Վիրտի Compiler construction-ը:

About

BASIC լեզվի կոմպիլյատոր LLVM IR լեզվի


Languages

Language:C++ 90.1%Language:Common Lisp 3.8%Language:BASIC 2.3%Language:C 2.2%Language:Visual Basic 6.0 0.8%Language:CMake 0.8%