QBE: backend-ul de compilator care nu te face să plângi
Mic, rapid și fără pretenții — QBE face pentru compilatoare ceea ce SQLite face pentru bazele de date.

Dacă ai scris vreodată un compilator și ai realizat că backend-ul e un amestec infernal de registre, instrucțiuni și dorința de a arunca totul, avem vești bune. QBE (Quick Back End) este un proiect open source care preia generarea de cod mașină, ca să poți dormi liniștit, nu să cauți un segfault la 3 dimineața.
QBE nu este un monstru precum LLVM, care necesită să înveți 47 de concepte noi și să treci prin șapte cercuri ale documentației. Mai degrabă, e ca un briceag elvețian: compact, ascuțit și face exact ce trebuie. Suportă x86_64 și AArch64, are optimizări (nu agresive, dar nici „deloc”) și rulează mult mai rapid decât frații mai mari. Ca Wi-Fi-ul bunicii: nu e recordman, dar e stabil.
Dezvoltatorii QBE s-au inspirat clar din filozofia Unix: fă un lucru, dar fă-l bine. Fără dialecte IR complicate, fără „hai să mai adăugăm un pass”. Pur și simplu iei AST-ul sau reprezentarea intermediară, o convertești în IR-ul QBE, și gata — primești un fișier .s de dat la assembler. Ideal pentru proiecte educaționale, prototipuri sau când vrei să-ți faci propriul limbaj de programare într-un weekend, nu într-un an.
Desigur, pentru producție cu optimizări agresive, QBE nu e potrivit — acolo LLVM sau GCC domnesc. Dar dacă ai nevoie rapid de un compilator funcțional fără mult overhead, QBE e ca o bicicletă în oraș: mai rapid decât mersul pe jos și nu trebuie să cauți parcare. Plus, e open source sub licența MIT — ia și fă ce vrei, chiar și un compilator de Brainfuck.
Comentariul echipei METABYTE: QBE e un exemplu perfect că nu trebuie să reinventezi roata cu colțuri pătrate. Și noi în proiectele noastre preferăm să folosim instrumente testate, ca să nu pierdem timpul cu magie de nivel jos, ci să ne concentrăm pe funcționalități care încântă utilizatorii. Deși uneori tot ne vine să scriem un backend de la zero — pentru suflet.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.