+programación de bajo nivel (*system programming*) como de alto nivel,
+siendo incluso compatible binariamente con C (se puede enlazar código
+objeto C con código objeto D). Y este es tal vez el punto más fuerte
+de D_, brindar lo mejor de los 2 mundos. Si bien tiene herramientas
+de muy bajo nivel, que por lo tanto son muy propensas a errores, da
+una infinidad de mecanismos para evitar el uso de estas herramientas
+a menos que sea realmente necesario. Además pone mucho énfasis en
+la programación confiable, para lo cual provee muchos mecanismos para
+detectar errores en los programas de forma temprana.
+
+Si puede pensarse en C++ como un "C mejor", podría decirse que D_ es
+un "C++ mejor", ya que el objetivo del lenguaje es muy similar a C++,
+pero implementa muchas características que jamás pudieron entrar en
+el estándar de C++ y lo hace de una forma mucho más limpia, ya que
+no debe lidiar con problemas de compatibilidad hacia atrás, y cuenta
+con la experiencia del camino recorrido por C++, pudiendo extraer de
+él los mejores conceptos pero evitando sus mayores problemas también.
+
+Una de las características que nunca pudo entrar en el estándar de C++
+es la recolección de basura. D_ no comete el mismo error.
+
+.. INTRODUCCION ..............................................................
+
+Objetivo
+--------
+.. Objetivo de la tesis
+ ESTADO: TERMINADO, EN REVISION
+
+La recolección de basura en D_ es un problema prácticamente nuevo. Si bien
+pueden considerarse válidos todos los modelos propuestos para recolección
+de basura en C, estos son muy restrictivos y poco eficientes, por lo
+promiscuo que este lenguaje. Por otro lado D_ provee muchas construcciones
+de alto nivel, lo que hace que la necesidad de utilizar construcciones de
+bajo nivel sea muy escasa, por lo tanto brinda un campo importante a
+explorar en cuanto a mejoras para el recolector de basura.
+
+Por lo tanto el objetivo del presente trabajo puede resumirse en los
+siguientes puntos:
+
+- Investigar y analizar la viabilidad de mejoras al recolector de
+ basura de D_, tanto mejoras menores dentro de las limitaciones actuales
+ del lenguaje (incluyendo pero no limitado a mejoras en el algoritmo
+ actual de recolección y soluciones en *espacio de usuario* -como
+ biblioteca-), como proponiendo mejoras al lenguaje que permitan la
+ implementación recolectores más precisos y eficientes.
+- Elegir un conjunto de las mejores soluciones halladas e implementarlas.
+ Las soluciones que necesiten modificaciones en el lenguaje serán
+ implementadas modificando el compilador libre de D_ GDC_, que
+ también será utilizado como plataforma principal de desarrollo y
+ prueba (debido a la disponibilidad completa del código fuente y
+ la libertad de usarlo y modificarlo libremente). De todas formas,
+ siempre se priorizarán las modificaciones al *frontend* [#frontend]_
+ sobre las modificaciones al *backend*, permitiendo así que las mejoras
+ puedan ser probadas eventualmente en otros compiladores que utilicen
+ el *frontend* publicado por DigitalMars_, como DMD_.
+- Realizar pruebas sobre aplicaciones lo más variadas y reales posible
+ sobre todas las soluciones implementadas, de manera de determinar de
+ forma fehaciente las ventajas de unas y otras en cuanto a latencia,
+ consumo de memoria, consumo de procesador, tiempos de pausa, etc.
+- Presentar las conclusiones obtenidas del análisis y las pruebas
+ realizadas, tanto en el ámbito académico de la facultad como a la
+ comunidad de D_ (con el objetivo de sumar lo construido en este trabajo
+ al lenguaje).
+
+.. [#frontend] El *frontend* es el módulo del compilador que realiza el
+ análisis sintáctico y semántico del lenguaje. GDC_ utiliza como
+ *frontend* el que provee libremente DigitalMars_.
+.. [#backend] El *backend* es el módulo del compilador que emite
+ el código binario (o *assembly*, o el lenguaje que produzca el
+ compilador como resultado final). GDC utiliza el *backend* del GCC_
+ (*GNU Compiler Collection*), uno de los compiladores más populares.
+
+
+.. INTRODUCCION ..............................................................
+
+Limitaciones
+------------
+.. Cosas que no se pretenden hacer en esta tesis
+ ESTADO: TERMINADO, EN REVISION
+
+Dado que el lenguaje de programación D_ puede ser enlazado con código
+objeto C, y por lo tanto interactuar directamente con éste, habrán
+limitaciones en el recolector resultante con respecto a esto. En este
+trabajo se busca lograr un recolector que sea eficiente para casos en donde
+el código que interactúa con C esté bien aislado, por lo que estas
+porciones de código pueden quedar por fuera del recolector de basura o
+necesitar un manejo especial.
+
+De no plantear esta limitación se llegaría indefectiblemente a un recolector
+conservativo como el que está disponible en la actualidad.
+
+.. ===========================================================================
+
+
+Recolección de Basura
+=====================
+.. Introducción a la importancia de la recolección de basura y sus
+ principales técnicas, con sus ventajas y desventajas. También se da
+ un breve recorrido sobre el estado del arte.
+ ESTADO: SIN EMPEZAR
+
+
+.. ===========================================================================
+
+
+El Lenguaje de Programación D
+=============================
+.. Introducción y breve reseña del lenguaje de programación D. También
+ se presentan las necesidades particulares de D con respecto al
+ recolector de basura y su estado actual.
+ ESTADO: SIN EMPEZAR, REVISAR LO HECHO