X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/blobdiff_plain/29bffac4720cd850418640db1963ec23690710c9..e29065f8a0ef15c7e32b8ccdfcb99e7b9471959e:/source/d.rst?ds=sidebyside diff --git a/source/d.rst b/source/d.rst index ddf849d..449109b 100644 --- a/source/d.rst +++ b/source/d.rst @@ -2,9 +2,11 @@ .. 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: TERMINADO, CORREGIDO, REVISADO + ESTADO: TERMINADO, CORREGIDO (A) +.. highlight:: d + .. _d_lang: El lenguaje de programación D @@ -16,8 +18,9 @@ Historia D_ es un lenguaje de programación relativamente joven. Nació en 1999 y el 2 de enero de 2007 salió su `versión 1.0`__. Poco tiempo después se continúo -el desarrollo del lenguaje en la `versión 2.0`__, aún inestable y en la cual -se está experimentando principalmente sobre multi-procesamiento. +el desarrollo del lenguaje en la `versión 2.0`__, que pasó a ser considerada +estable aproximadamente en junio de 2010 con el lanzamiento del libro "The +D Programming Language" [ALX10]_, pero aún es un trabajo en progreso. __ `D 1.0`_ __ `D 2.0`_ @@ -104,13 +107,17 @@ tiempo considerable en asegurarse de que funcione con ambas). Esto hace que la compatibilidad de programas y bibliotecas esté muy fragmentada entre las dos bibliotecas base. Si bien no parece que vaya a haber -solución alguna a este problema para D 1.0, D 2.0 va en camino a solucionar -este problema ya que utiliza DRuntime_, un nuevo intento de Sean Kelly por -proveer una biblioteca *runtime* bien organizada y mantenida, que es una -adaptación de la biblioteca *runtime* de Tango_ a `D 2.0`_. Si bien todavía -Tango_ no fue adaptada a `D 2.0`_, se espera que cuando esto pase compartan la -misma biblioteca *runtime* permitiendo que bibliotecas y programas hechos para - y Phobos_ 2.0 puedan coexistir sin problemas. +solución alguna a este problema para `D 1.0`_, `D 2.0`_ va en camino +a solucionar este problema ya que utiliza DRuntime_, un nuevo intento de Sean +Kelly por proveer una biblioteca *runtime* bien organizada y mantenida, que es +una adaptación de la biblioteca *runtime* de Tango_ a `D 2.0`_. Sin embargo +Tango_ no fue adaptada a `D 2.0`_ todavía, y no hay muchas perspectivas de que +sea portada en algún momento, por un lado porque en general la comunidad sigue +fragmentada entre muchos usuarios de `D 1.0`_ que no están contentos con los +cambios introducidos en `D 2.0`_, en su mayoría usuarios de Tango_, y que no +planean migrar a esa versión; y por otro porque el desarrollo de Phobos_ 2.0 +se ha abierto mucho y tiene muchos colaboradores, por lo tanto la mayor parte +de la gente que utiliza `D 2.0`_ está contenta con el estado de Phobos_ 2.0. Descripción general @@ -1061,25 +1068,29 @@ compilador pero no lo convierte en `Software Libre`_, siendo el único de los __ http://www.digitalmars.com/d/1.0/changelog.html#new1_041 El compilador GDC_ es el *front-end* de DMD_ utilizando al compilador GCC_ -como *back-end*. Fue un muy buen compilador pero en la actualidad está -abandonado. No hay un *release* desde agosto de 2007 y no hay actualizaciones -serias del código desde mediados de 2008, por lo que no parece haber muchas -probabilidades de que se siga manteniendo. - -LDC_ es lo opuesto; un compilador joven, nacido a mediados de 2007 como un -proyecto personal y privado de Tomas Lindquist Olsen, que estuvo trabajando de -forma privada en el proyecto hasta mediados de 2008, momento en que decide -publicar el código mediante una licencia libre. Para ese entonces el -compilador era todavía inestable y faltaban implementar varias cosas, pero el -estado era lo suficientemente bueno como para captar varios colaboradores muy -capaces, como `Christian Kamm`_ y Frits Van Bommel que rápidamente se -convirtieron en parte fundamental del proyecto. El primer *release* (0.9) de -una versión relativamente completa y estable fue a principios de 2009 que fue -seguido por la versión 0.9.1 que como puntos más salientes agregó soporte para -x86-64 y assembly embebido. El compilador tuvo y sigue teniendo un crecimiento -excepcional. En la actualidad inclusive pasa más pruebas de estrés que el -compilador de referencia DMD_. Como *back-end* utiliza LLVM_, otro proyecto -joven y con una tasa de crecimiento muy alta. +como *back-end*. Fue un muy buen compilador pero estuvo abandonado por casi +tres años. A mediados de este año recibió un nuevo impulso y de a poco se está +poniendo al día con los *front-ends* actuales de DMD_ 1.0 y 2.0, aunque la +versión 2.0 viene bastante más rezagada y todavía no es una alternativa viable +a DMD_. + +LDC_ sufrió una suerte similar, es un compilador joven que utiliza como +*back-end* a LLVM_ (una infraestructura modera para construir compiladores), +nacido a mediados de 2007 como un proyecto personal y privado de Tomas +Lindquist Olsen, que estuvo trabajando de forma privada en el proyecto hasta +mediados de 2008, momento en que decide publicar el código mediante una +licencia libre. Para ese entonces el compilador era todavía inestable +y faltaban implementar varias cosas, pero el estado era lo suficientemente +bueno como para captar varios colaboradores muy capaces, como `Christian +Kamm`_ y Frits Van Bommel que rápidamente se convirtieron en parte fundamental +del proyecto. El primer *release* (0.9) de una versión relativamente completa +y estable fue a principios de 2009 que fue seguido por la versión 0.9.1 que +como puntos más salientes agregó soporte para x86-64 y assembly embebido. El +compilador tuvo un crecimiento excepcional pero estuvo muy inactivo por algún +tiempo y, si bien sigue siendo mantenido, en general los nuevos *front-end* de +DMD_ llevan tiempo de integrar y no está al día con el *back-end* de LLVM_ +(por ejemplo desde que se actualizó para utilizar LLVM_ 2.7 que perdió la +capacidad de generar símbolos de depuración). Además de estos compiladores hay varios otros experimentales, pero ninguno de ellos de calidad suficiente todavía. Por ejemplo hay un compilador @@ -1089,10 +1100,12 @@ Dil_. Originalmente, dado que GDC_ estaba siendo mantenido y que LDC_ no existía, este trabajo iba a ser realizado utilizando GDC_ como compilador, dado que al -ser `Software Libre`_ podía ser modificado de ser necesario. Finalmente, -gracias a la excepcional tasa de crecimiento de LDC_ y al abandono de GDC_ se -terminó desarrollando el trabajo utilizando LDC_. - +ser `Software Libre`_ podía ser modificado de ser necesario. Pero finalmente, +dada la poca confiabilidad que presenta la continuidad del desarrollo de tanto +GDC_ como LDC_, y que el código de DMD_ está disponible en su totalidad +(aunque no sea `Software Libre`_ por completo), se optó por utilizar este +último, dado que es la implementación de referencia que fue más constantemente +mantenida y desarrollada. .. include:: links.rst