-.. Introducción al trabajo, objetivos, alcance, limitaciones y organización
- del documento.
- ESTADO: TERMINADO
-
-
.. _intro:
Introducción
tomando particular importancia.
Nuevos algoritmos fueron desarrollados para atacar distintos problemas
-particulares y para mejorar la *performance*, que ha sido una inquietud
+particulares y para mejorar el rendimiento, que ha sido una inquietud
incesante en la investigación de recolectores de basura. Sin embargo el
lenguaje más masivo que ha adoptado un recolector de basura (al menos en el
ámbito empresarial) fue Java_, con el cual la investigación sobre recolección
acotando tal vez un poco el alcance de estos avances dado que ese lenguaje
tiene características muy particulares (*tipado* estático, corre sobre una
máquina virtual muy rica en cuanto a información de tipos, etc.) no
-disponibles en otros lenguajes. Sin embargo los lenguajes funcionales y con
+disponibles en otros lenguajes. Sin embargo los lenguajes funcionales y/o con
*tipado* dinámico siguieron teniendo un nivel de investigación y desarrollo
importante, dado que fueron concebidos en su mayoría con la recolección de
basura como parte del diseño.
Probablemente los lenguajes en los cuales es más difícil aplicar los avances
-que se desprendieron de Java_ o de las otras categoría de lenguajes con más
-avances en recolección de basura sean los de más bajo nivel (como C y C++), en
+que se desprendieron de Java_ o de las otras categorías de lenguajes con más
+avances en recolección de basura sean los de más bajo nivel, como C y C++, en
los cuales se da lo inverso en cuanto a disponibilidad de información en
tiempo de ejecución, sumado a la permisividad de estos lenguajes para realizar
manipulación de memoria directamente y trabajar a muy bajo nivel. De la mano
Una categoría de lenguaje que ha quedado prácticamente vacante es un término
intermedio entre los lenguajes de muy alto nivel (como Java_, Python_,
-Haskell_, etc.). El lenguaje de programación D_ está en esta categoría y,
-a pesar de haber sido diseñado con soporte de recolección de basura, al ser un
-lenguaje relativamente nuevo, ha tenido muy poco desarrollo en ese área. El
-lenguaje tiene todas las limitaciones de lenguajes de bajo nivel como C y C++
-pero esas limitaciones suelen estar más aisladas, y provee un poco más de
-información que puede ser aprovechada por un recolector de la que suelen
-proveer los demás lenguajes de estas características. Esto presenta una
-oportunidad única en cuanto a investigación y desarrollo de recolectores que
-se ajusten a estas características.
+Haskell_, etc.) y los de muy bajo nivel (como C y C++). El lenguaje de
+programación D_ está en esta categoría y, a pesar de haber sido diseñado con
+soporte de recolección de basura, al ser un lenguaje relativamente nuevo, ha
+tenido muy poco desarrollo en ese área. El lenguaje tiene todas las
+limitaciones de lenguajes de bajo nivel como C y C++, pero esas limitaciones
+suelen estar más aisladas, y provee un poco más de información que puede ser
+aprovechada por un recolector de la que suelen proveer los demás lenguajes de
+estas características. Esto presenta una oportunidad única en cuanto
+a investigación y desarrollo de recolectores que se ajusten a estas
+características.
D_, investigando el estado del arte en recolección de basura y haciendo un
análisis de viabilidad de los algoritmos principales para optar por el que
mejor se ajuste a D_. Una parte muy importante de este análisis es participar
-de la comunidad del lenguaje y sus diseñadores para poder desarrollar una
-mejora que sea aceptada y pueda ser utilizada por el lenguaje. Por lo tanto el
-algoritmo o mejora que "mejor se ajuste a D_" estará supeditado en gran parte
-a los requerimientos más urgentes de los usuarios de D_.
+de la comunidad del lenguaje para poder desarrollar una mejora que sea
+aceptada y utilizada por dicha comunidad. Por lo tanto el algoritmo o mejora
+que "mejor se ajuste a D_" estará supeditado en gran parte a los
+requerimientos más urgentes de los usuarios de D_.
El alcance de este trabajo se limita a los siguientes puntos:
* Explorar los problemas del recolector de basura actual.
-* Evaluar cuales de estos problemas son de mayor importancia para la
+* Evaluar cuáles de estos problemas son de mayor importancia para la
comunidad de usuarios de D_.
* Analizar la viabilidad de algoritmos y optimizaciones para solucionar
o minimizar el o los problemas de mayor importancia.
Organización
----------------------------------------------------------------------------
-Este trabajo se encuentra dividido en 7 cápitos que se describen
+Este trabajo se encuentra dividido en 6 capítulos que se describen
a continuación:
1. :ref:`intro`: breve descripción del problema a tratar, presentando
y describe el estado del arte.
4. :ref:`dgc`: explica los problemas particulares que presenta el
lenguaje para la recolección de basura, describe el diseño
- e implementación del recolector actual y presenta sus principales
- deficiencias.
-5. :ref:`analisis`: realiza un recorrido por los algoritmos presentados
- en :ref:`gc` analizando su viabilidad para aplicarse en D_.
-6. :ref:`solucion`: propone una solución a los problemas encontrados en
- :ref:`dgc` en base al análisis hecho en :ref:`analisis`.
-7. :ref:`conclusion`: describe los resultados del trabajo, proponiendo
- trabajos futuros y relacionados.
-
+ e implementación del recolector actual, presenta sus principales
+ deficiencias y analiza la viabilidad de diferentes soluciones.
+5. :ref:`solucion`: propone una solución a los problemas principales
+ encontrados y define un banco de pruebas para analizar los resultados de
+ las modificaciones hechas.
+6. :ref:`conclusion`: describe las conclusiones alcanzadas en base a los
+ resultados del trabajo, analizando puntos pendientes, mostrando trabajos
+ relacionados y proponiendo trabajos futuros.
.. include:: links.rst
-.. vim: set ts=3 sts=3 sw=3 et tw=78 :
+.. vim: set ts=3 sts=3 sw=3 et tw=78 spelllang=es :