Fil-C es un nuevo enfoque para implementar C/C++ con seguridad de memoria. El proyecto, detallado en corsix.org, busca resolver los problemas de seguridad inherentes a estos lenguajes mediante una transformación automatizada del código fuente. En su modelo simplificado, Fil-C inserta un AllocationRecord junto a cada variable de puntero local, rastreando la asignación de memoria y permitiendo la verificación de límites. La función filc_malloc realiza tres asignaciones de memoria (visible, invisible y el propio AllocationRecord), mientras que filc_free libera dos, dejando la gestión de la memoria no liberada a un recolector de basura (GC). La inclusión de un GC simplifica la gestión de la memoria, evitando fugas y permitiendo la toma de direcciones de variables locales, que se promocionan a la memoria dinámica si es necesario. La implementación también incluye una versión modificada de memmove para garantizar la seguridad de la memoria. La versión completa de Fil-C aborda desafíos adicionales como la concurrencia, los punteros a funciones y la optimización del rendimiento, aunque con un costo en la velocidad de ejecución. El objetivo principal es proporcionar una alternativa segura a C/C++ para proyectos existentes, aunque con la aceptación de un impacto en el rendimiento y la introducción de un recolector de basura.
