From: Leandro Lucarella Date: Mon, 11 Oct 2010 17:28:10 +0000 (-0300) Subject: Reescribir resumen X-Git-Tag: entrega-2010-10-14~6 X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/commitdiff_plain/2e62c5cd62a55eb027d3c8d8c198553ba27a273c Reescribir resumen El resumen anterior fue escrito antes de hacer el trabajo y solo mencionaba los objetivos pero no los resultados. Además era demasiado extenso. --- diff --git a/source/resumen.rst b/source/resumen.rst index b352428..a753919 100644 --- a/source/resumen.rst +++ b/source/resumen.rst @@ -12,39 +12,23 @@ Resumen \section*{Resumen} -El problema del manejo de memoria ha sido un factor clave en los lenguajes de -programación desde que empezaron a forjarse los primeros lenguajes con un -mínimo nivel de abstracción, dado que la administración de memoria explícita -ha sido un flagelo constante en el mundo de la informática, provocando -pérdidas de memoria que degradan el rendimiento de programas de larga vida -y siendo la principal fuente de problemas de seguridad, entre otros. - -Es por esto que desde la primera aparición de lenguajes de alto nivel, se -buscó abstraer al programador de administrar la memoria explícitamente, -desarrollando un área de investigación por mérito propio denominada -**recolección de basura** (o *garbage collection* en inglés). Se trata de un -servicio (provisto generalmente por el lenguaje) que permite auto-detectar -cuando una celda de memoria ha dejado de ser utilizada por el programa para -poder ser reciclada en el futuro, liberando al programador de llevar cuenta -del tiempo de vida de una celda y su liberación explícita cuando ésta deja de -utilizarse. - -D es un lenguaje de programación multi-paradigma, que soporta programación de -bajo nivel pero provee construcciones de muy alto nivel también, incluyendo un -*recolector de basura*. Dadas las amplias y variadas características del -lenguaje, D propone un nuevo desafío en cuanto al diseño de un recolector de -basura, y si bien D ya cuenta con un recolector que hace lo necesario para -funcionar de forma aceptable, su diseño e implementación son relativamente -sencillas comparadas con el estado del arte de la recolección de basura en -general. - -El objetivo de este trabajo es explorar los problemas del recolector de basura -actual, evaluar cuales son de mayor importancia para la comunidad, analizar la -viabilidad de algoritmos y optimizaciones para mejorarlo, implementar la -solución y proveer todos los elementos necesarios para que la solución pueda -ser adoptada por el lenguaje. Esto último es de vital importancia para este -trabajo: la solución tiene que tener buenas probabilidades de ser aceptada por -la comunidad de D. +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 @@ -59,4 +43,6 @@ aportes técnicos invaluables a cambio de helado, y a la gente que me estoy olvidando por hacer eso que me estoy olvidando que hizo. +.. include:: links.rst + .. vim: set ts=3 sts=3 sw=3 et tw=78 spelllang=es :