5 ============================================================================
12 El manejo de memoria es un problema recurrente en los lenguajes de
13 programación; dada su complejidad es muy propenso a errores y las
14 consecuencias de dichos errores pueden ser muy graves. La *recolección de
15 basura* es el área de investigación que trata las técnicas de manejo
16 automático de memoria. D_ es un lenguaje de programación compilado, con tipado
17 estático y multi-paradigma que combina el poder de lenguajes de programación
18 de bajo nivel, como C, con la facilidad de los de alto nivel, como Python_
19 o Java_. D_ provee recolección de basura pero ha sido frecuentemente criticada
20 por sus varias falencias. Dadas las particularidades del lenguaje, plantea un
21 desafío casi único en cuanto al diseño de un recolector.
23 Este trabajo hace un recorrido por el estado del arte en recolección de basura
24 teniendo en cuenta los requerimientos de D_; analiza la implementación del
25 recolector actual y propone mejoras con el objetivo principal de minimizar los
26 tiempos de pausa. Finalmente se construye un banco de pruebas para verificar
27 los resultados, que muestran una disminución de hasta 200 veces en el tiempo
28 de pausa del recolector y de hasta 3 veces en el tiempo total de ejecución.
34 \section*{Agradecimientos}
36 A mis viejos y hermanos por soportarme y apoyarme, a Ali por estar siempre
37 para darme un empujoncito cuando me estanco, a Rosita por introducirme en el
38 tema, aguantar mis baches y ayudarme a mantener el foco, a Albertito por los
39 aportes técnicos invaluables a cambio de helado, a la gente que hizo la
40 innumerable cantidad de Software Libre que usé en este trabajo por
41 simplificarme enormemente la vida, y a la gente que me estoy olvidando por
42 hacer eso que me estoy olvidando que hizo.
47 \epigraph{¡Es basura! ¡Es basura! ¡Es basura!}{Jay Sherman}
51 \pagenumbering{arabic}
55 .. include:: links.rst
57 .. vim: set ts=3 sts=3 sw=3 et tw=78 spelllang=es :