La nouvelle version de QBE, un backend universel pour la création de compilateurs, a été publiée.
QBE se distingue de son analogue le plus proche (LLVM) par une base de code beaucoup plus simple, une vitesse de fonctionnement et de compilation élevée (QBE lui-même se compile à partir des sources en moins d'une seconde sur Core2Duo) et une API plus conviviale pour les développeurs, y compris un langage intermédiaire (IL) plus simple. Cependant, QBE n'est pas destiné à la création de compilateurs industriels avec des exigences élevées en matière de qualité du code généré, mais il convient parfaitement aux projets amateurs et aux prototypes.
La génération de code binaire est supportée pour les architectures x86_64, AArch64 et RISC-V (rv64). Parmi les projets utilisant QBE, on peut citer les compilateurs du langage C cproc, SCC, PACC, ainsi que les compilateurs des langages Hare et Antimony. QBE est également utilisé dans le cadre d'un cours sur le développement de compilateurs à l'Institut de programmation système de l'Académie des sciences de Russie nommé d'après V.P. Ivannikov.
Parmi les changements de la nouvelle version :
- Prise en charge ajoutée pour Windows ABI ;
- Nouvelles optimisations qui accroissent la vitesse du code généré. En moyenne, lors des tests, la performance du code issu de QBE représente environ 63 % de celle du code issu de GCC ;
- Amélioration du support pour la génération de PIE (code indépendant de la position).
Le code est écrit en C (C99) et est distribué sous licence MIT.
Source : linux.org.ru
