Foi lançada uma nova versão do QBE – um backend universal para a criação de compiladores.
O QBE se diferencia do seu equivalente mais próximo (LLVM) por ter uma base de código muito mais simples, alta velocidade de execução e compilação (o próprio QBE é compilado a partir do código-fonte em menos de um segundo em um Core2Duo) e uma API mais amigável para o desenvolvedor, incluindo uma linguagem intermediária (IL) mais simplificada. No entanto, o QBE não é projetado para a criação de compiladores industriais com altos requisitos de qualidade do código gerado, mas é bem adequado para projetos de hobby e protótipos.
O QBE suporta a geração de código binário para as arquiteturas x86_64, AArch64 e RISC-V (rv64). Entre os projetos que utilizam o QBE, destacam-se os compiladores da linguagem C cproc, SCC, PACC, além dos compiladores das linguagens Hare e Antimony. O QBE também é utilizado no curso de desenvolvimento de compiladores no Instituto de Programação de Sistemas da Academia das Ciências da Rússia, sob a direção de V.P. Ivanников.
Entre as mudanças na nova versão:
- Adicionada a suporte para Windows ABI;
- Novas otimizações que aceleram o código gerado. Em média, nos testes, o desempenho do código gerado pelo QBE é aproximadamente 63% do desempenho do código gerado pelo GCC;
- Melhorado o suporte para a geração de PIE (position-independent code).
O código é escrito em C (C99) e é distribuído sob a licença MIT.
Fonte: linux.org.ru
