3 ESTADO: TERMINADO, CORREGIDO, REVISADO
9 ============================================================================
15 El problema del manejo de memoria ha sido un factor clave en los lenguajes de
16 programación desde que empezaron a forjarse los primeros lenguajes con un
17 mínimo nivel de abstracción, dado que la administración de memoria explícita
18 ha sido un flagelo constante en el mundo de la informática, provocando
19 pérdidas de memoria que degradan el rendimiento de programas de larga vida
20 y siendo la principal fuente de problemas de seguridad, entre otros.
22 Es por esto que desde la primera aparición de lenguajes de alto nivel, se
23 buscó abstraer al programador de administrar la memoria explícitamente,
24 desarrollando un área de investigación por mérito propio denominada
25 **recolección de basura** (o *garbage collection* en inglés). Se trata de un
26 servicio (provisto generalmente por el lenguaje) que permite auto-detectar
27 cuando una celda de memoria ha dejado de ser utilizada por el programa para
28 poder ser reciclada en el futuro, liberando al programador de llevar cuenta
29 del tiempo de vida de una celda y su liberación explícita cuando ésta deja de
32 D es un lenguaje de programación multi-paradigma, que soporta programación de
33 bajo nivel pero provee construcciones de muy alto nivel también, incluyendo un
34 *recolector de basura*. Dadas las amplias y variadas características del
35 lenguaje, D propone un nuevo desafío en cuanto al diseño de un recolector de
36 basura, y si bien D ya cuenta con un recolector que hace lo necesario para
37 funcionar de forma aceptable, su diseño e implementación son relativamente
38 sencillas comparadas con el estado del arte de la recolección de basura en
41 El objetivo de este trabajo es explorar los problemas del recolector de basura
42 actual, evaluar cuales son de mayor importancia para la comunidad, analizar la
43 viabilidad de algoritmos y optimizaciones para mejorarlo, implementar la
44 solución y proveer todos los elementos necesarios para que la solución pueda
45 ser adoptada por el lenguaje. Esto último es de vital importancia para este
46 trabajo: la solución tiene que tener buenas probabilidades de ser aceptada por
50 .. vim: set ts=3 sts=3 sw=3 et tw=78 spelllang=es :