vbcc es un compilador ANSI C portátil y reorientable . Es compatible con C89 (ISO / IEC 9899: 1989) y partes de C99 (ISO / IEC 9899: 1999).
Desarrollador (es) | Volker Barthelmann |
---|---|
Versión inicial | 1995 |
Lanzamiento estable | 0,9 g / 4 de octubre de 2019 |
Escrito en | ANSI C |
Sistema operativo | Multiplataforma |
Tipo | Compilador cruzado |
Licencia | Freeware para uso no comercial |
Sitio web | www |
Está dividido en dos partes. Uno es independiente del objetivo y el otro depende del objetivo. vbcc proporciona una abstracción completa de la aritmética de host y la aritmética de destino. Es totalmente compatible con la compilación cruzada para arquitecturas de 8 , 16 , 32 y 64 bits .
Los sistemas integrados son compatibles con características como diferentes tamaños de puntero, código con capacidad de ROM, ensamblaje en línea, tipos de bits, controladores de interrupciones, atributos de sección y cálculo de uso de la pila (según el backend).
vbcc soporta los siguientes backends, con diferentes grados de madurez: 68K , ColdFire , PowerPC , 6502 , VideoCore , 80x86 (386 y superior), Alpha , C16x / ST10 , 6.809 / 6,309 / 68HC12 , y Z-máquina .
El compilador en sí puede ejecutarse en todos los sistemas operativos comunes, incluidos Windows , Mac OS X y Unix / Linux .
Optimizaciones
El compilador proporciona un gran conjunto de optimizaciones de alto nivel, así como optimizaciones específicas de destino para producir código más rápido o más pequeño. También es capaz de optimizar entre funciones y módulos. Las optimizaciones independientes del objetivo admitidas por vbcc incluyen:
- alineación de función de módulo cruzado
- alineación parcial de funciones recursivas
- análisis de flujo de datos entre procedimientos
- asignación de registros interprocedimiento
- registro de asignación de variables globales
- eliminación global de subexpresiones comunes
- propagación constante global
- propagación de copia global
- eliminación de código muerto
- análisis de alias
- desenrollado de bucle
- eliminación variable de inducción
- movimiento de código invariante en bucle
- inversión de bucle
Referencias
- Sunitha, KVN (2013). Diseño del compilador . Pearson India. ISBN 9-332-50029-0. página 20