Programar en C con Garbage Collection

De los 20 lenguajes mejor ubicados en el índice TIOBE, 14 tienen alguna forma de “Garbage Collection“. Esos 14 lenguajes representan más de un 47% de peso en el índice. Los únicos lenguajes “importantes” que no tienen recolección automática de basura son C, C++ y Objective-C (Delphi, Pascal y Ada son minoritarios).

El caso de Objective-C es especial ya que desde la versión 2.0 tiene un garbage collector, pero es opcional y no está en la versión que se usa para desarrollar aplicaciones para el iPhone.

En C y C++ se puede usar el garbage collector de Boehm-Demers-Weiser. Básicamente en lugar de llamar a malloc, llamas a GC_MALLOC y los llamados a GC_FREE son opcionales.

En Ubuntu, debemos instalar libgc

 sudo apt-get install libgc-dev libgc1c2

y al compilar debemos usar la opción -lgc para indicarle al linker que use libgc.

gcc -std=c99 -Wall  -o programa *.c -lgc

Anuncios

Qué es la Informática

La Informática es la ciencia que sostiene que todos los problemas se pueden resolver con un nivel más de indirección.

Una gran verdad. Quien no lo vea, es porque no es informático.