]> git.llucax.com Git - z.facultad/75.00/informe.git/blobdiff - source/intro.rst
Agregar Problemas y limitaciones del recolector actual
[z.facultad/75.00/informe.git] / source / intro.rst
index a8fb1ca8aca5edc8b0876abf5f4b3a81e59a1fd5..393a10bff0c9eb1fc930dc370512327a42753711 100644 (file)
@@ -12,63 +12,61 @@ Introducción
 La recolección de basura es una técnica que data de fines de los años '50,
 cuando `John McCarthy`_, creador de Lisp_, agregó a dicho lenguaje la
 capacidad de administrar la memoria automáticamente (utilizando conteo de
 La recolección de basura es una técnica que data de fines de los años '50,
 cuando `John McCarthy`_, creador de Lisp_, agregó a dicho lenguaje la
 capacidad de administrar la memoria automáticamente (utilizando conteo de
-referencias), entre muchos otros conceptos revolucionarios para la época
-que recién fueron explotados masivamente en lenguajes dinámicos más
-modernos como Perl_, Python_, Ruby_, etc. A partir de este momento, muchos
-lenguajes tomaron esta característica y hubo una gran cantidad de
-investigación al respecto, tomando particular importancia.
+referencias), entre muchos otros conceptos revolucionarios para la época que
+recién fueron explotados masivamente en lenguajes dinámicos más modernos como
+Perl_, Python_, Ruby_, etc. A partir de este momento, muchos lenguajes tomaron
+esta característica y hubo una gran cantidad de investigación al respecto,
+tomando particular importancia.
 
 Nuevos algoritmos fueron desarrollados para atacar distintos problemas
 particulares y para mejorar la *performance*, 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
 
 Nuevos algoritmos fueron desarrollados para atacar distintos problemas
 particulares y para mejorar la *performance*, 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 de basura tomó un impulso extra. Probablemente el mayor
-desarrollo 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 *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 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 de estos lenguajes apareció otra veta de
-investigación en lo que se denominó 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.
+ámbito empresarial) fue Java_, con el cual la investigación sobre recolección
+de basura tomó un impulso extra. Probablemente el mayor desarrollo
+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
+*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
+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
+de estos lenguajes apareció otra veta de investigación en lo que se denominó
+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.
 
 
 
 Objetivo
 ----------------------------------------------------------------------------
 
 
 
 
 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_.
+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_.
 
 
 
 
 
 
@@ -93,13 +91,13 @@ El alcance de este trabajo se limita a los siguientes puntos:
 Limitaciones
 ----------------------------------------------------------------------------
 
 Limitaciones
 ----------------------------------------------------------------------------
 
-Dado que el lenguaje de programación D_ puede ser enlazado con código
-objeto C, y por lo tanto interactuar directamente con éste, podrán haber
-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.
+Dado que el lenguaje de programación D_ puede ser enlazado con código objeto
+C, y por lo tanto interactuar directamente con éste, podrán haber 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.
 
 
 Organización
 
 
 Organización