X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/blobdiff_plain/4dec75812c56a0e0c6fb8d305349d32a09df10b0..refs/heads/master:/source/intro.rst?ds=sidebyside diff --git a/source/intro.rst b/source/intro.rst index 900ac5c..adaf435 100644 --- a/source/intro.rst +++ b/source/intro.rst @@ -1,9 +1,4 @@ -.. Introducción al trabajo, objetivos, alcance, limitaciones y organización - del documento. - ESTADO: TERMINADO, CORREGIDO - - .. _intro: Introducción @@ -28,14 +23,14 @@ e investigación en cuanto a recolección de basura se siga dando para Java_, 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 @@ -44,15 +39,16 @@ recolectores de basura *conservativos*. 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. @@ -62,11 +58,14 @@ Objetivo El objetivos de esta tesis es mejorar el recolector de basura de el lenguaje 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_. +mejor se ajuste a D_. Una vez hecho esto se propone implementar una solución +y verificar los resultados mediante pruebas experimentales. + +Un aspecto importante del análisis y la solución propuesta por este trabajo es +participar 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 sus usuarios. @@ -76,7 +75,7 @@ Alcance 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. @@ -103,7 +102,7 @@ especial. Organización ---------------------------------------------------------------------------- -Este trabajo se encuentra dividido en 7 capítulos 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 @@ -114,17 +113,16 @@ a continuación: 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 :