División Segura en C con Maybe

2025-08-11

Este artículo detalla la implementación de contenedores genéricos seguros para tipos y límites en C. El autor introduce un tipo `Maybe`, inspirado en Haskell, para manejar funciones que pueden devolver ningún valor (por ejemplo, división por cero). Se crea una función de división segura usando macros para definir `Maybe`, tratando la división por cero y el caso límite de dividir el entero representativo más pequeño por -1. Se analiza el código ensamblador generado por GCC para verificar la seguridad de la función. El autor concluye señalando las limitaciones de este enfoque para probar la seguridad completa de los programas C.

Leer más
Desarrollo

Contenedores genéricos en C: Implementación segura y eficiente de vec

2025-07-26

Este artículo detalla la implementación de un contenedor genérico con seguridad de tipo y límites, `vec`, en C. `vec` es esencialmente un array redimensionable, que crece dinámicamente usando `realloc`. El autor explica la implementación, incluyendo la función `vec_push` y el manejo de errores para la asignación de memoria. Se exploran dos interfaces mejoradas, `vec_push_cap` y `vec_push_auto`, para la optimización del rendimiento. Se discute la seguridad de los límites, junto con la interoperabilidad con las matrices C tradicionales a través de la macro `vec2array`.

Leer más