
.. _resumen:

Resumen
============================================================================

.. raw:: latex

   \pagestyle{empty}
   \section*{Resumen}

El manejo de memoria es un problema recurrente en los lenguajes de
programación; dada su complejidad es muy propenso a errores y las
consecuencias de dichos errores pueden ser muy graves. La *recolección de
basura* es el área de investigación que trata las técnicas de manejo
automático de memoria. D_ es un lenguaje de programación compilado, con tipado
estático y multi-paradigma que combina el poder de lenguajes de programación
de bajo nivel, como C, con la facilidad de los de alto nivel, como Python_
o Java_. D_ provee recolección de basura pero ha sido frecuentemente criticada
por sus varias falencias. Dadas las particularidades del lenguaje, plantea un
desafío casi único en cuanto al diseño de un recolector.

Este trabajo hace un recorrido por el estado del arte en recolección de basura
teniendo en cuenta los requerimientos de D_; analiza la implementación del
recolector actual y propone mejoras con el objetivo principal de minimizar los
tiempos de pausa. Finalmente se construye un banco de pruebas para verificar
los resultados, que muestran una disminución de hasta 200 veces en el tiempo
de pausa del recolector y de hasta 3 veces en el tiempo total de ejecución.


.. raw:: latex

   \vfill
   \section*{Agradecimientos}

A mis viejos y hermanos por soportarme y apoyarme, a Ali por estar siempre
para darme un empujoncito cuando me estanco, a Rosita por introducirme en el
tema, aguantar mis baches y ayudarme a mantener el foco, a Albertito por los
aportes técnicos invaluables a cambio de helado, a la gente que hizo la
innumerable cantidad de Software Libre que usé en este trabajo por
simplificarme enormemente la vida, y a la gente que me estoy olvidando por
hacer eso que me estoy olvidando que hizo.

.. raw:: latex

   \vspace{1in}
   \epigraph{¡Es basura! ¡Es basura! ¡Es basura!}{Jay Sherman}

   \clearpage
   \setcounter{page}{1}
   \pagenumbering{arabic}
   \pagestyle{normal}


.. include:: links.rst

.. vim: set ts=3 sts=3 sw=3 et tw=78 spelllang=es :
