Eine neue Version von QBE wurde veröffentlicht – ein universeller Backend für die Erstellung von Compilern.
Im Vergleich zum nächstliegenden Analogon (LLVM) zeichnet sich QBE durch eine erheblich einfachere Codebasis, höhere Ausführungsgeschwindigkeit und schnelleres Bauen aus (QBE lässt sich auf einem Core2Duo in weniger als einer Sekunde aus dem Quellcode kompilieren) und bietet ein entwicklerfreundlicheres API, einschließlich einer einfacheren Zwischensprache (IL). QBE ist zwar nicht für die Erstellung industrieller Compiler mit hohen Qualitätsanforderungen an den generierten Code gedacht, eignet sich jedoch gut für Hobbyprojekte und Prototypen.
Die Generierung von Binärcode für die Architekturen x86_64, AArch64 und RISC-V (rv64) wird unterstützt. Zu den Projekten, die QBE nutzen, zählen Compiler für die Programmiersprache C wie cproc, SCC, PACC sowie Compiler für die Sprachen Hare und Antimony. QBE wird auch im Rahmen eines Kurses zur Compiler-Entwicklung am Institut für Systemprogrammierung der W. P. Ivannikov RAN verwendet.
Zu den Änderungen in der neuen Version gehören:
- Unterstützung für Windows ABI hinzugefügt;
- Neue Optimierungen zur Beschleunigung des generierten Codes. Im Durchschnitt erreicht der von QBE erzeugte Code in Tests etwa 63 % der Leistung des Codes von GCC;
- Die Unterstützung für die Generierung von PIE (Position Independent Code) wurde verbessert.
Der Code ist in der Programmiersprache C (C99) geschrieben und wird unter der MIT-Lizenz veröffentlicht.
Quelle: linux.org.ru
