Zero

Zero
Zero

31 octubre 2005

Traducido el tutorial sobre VZero al inglés

Ahora, desde la página del tutorial Zero, ya es posible acceder a la versión en inglés. Desde la parte superior del tutorial, un enlace nos conducirá a la versión inglesa, y un enlace similar en la versión inglesa conduce a la española.


También es posible acceder a este tutorial traducido desde la página principal de Zero, desde el menú de la izquierda. El enlace en español nos llevará al tutorial en español, mientras el enlace en inglés nos llevará al traducido.


El tutorial de manejo de Visual Zero es realmente interesante, puesto que a) enseña a manejar la máquina virtual Zero con interfaz visual, lo cuál es realmente interesante para estudiantes de ingeniería informática, para los que va especialmente dirigido este proyecto; y b) el tutorial enseña cómo crear objetos; atributos y métodos; y como modificar atributos ya existentes. Además, explica cómo se programa desde un punto de vista genérico en un sistema que sigue el modelo de orientación a objetos basado en prototipos, y, especialmente, como utilizar de forma útil la herencia dinámica.

02 septiembre 2005

Vuelta de vacaciones

Los esfuerzos en la obtención del módulo de persistencia están dando ya su fruto: está terminado en un 60%. También se está desarrollando el módulo de optimizaciones.

Varios bugs corregidos, y la capa de optimización también va mejorando día a día. Se está añadiendo la posibilidad de marcar métodos y objetos con etiquetas (como en C#).


Dos compiladores de lenguajes de alto nivel están ya en camino: uno, J--, es un subconjunto de Java, mientras el otro es más parecido a Smalltak y Self.

12 julio 2005

Optimización

Aunque el módulo de persistencia debería estar ya completado, se ha visto retrasado por un repentino interés en un nuevo módulo de optimización de código.

Las optimizaciones consisten en a) mover los datos nativos (proporcionados por los opcodes INT, FLT y STR), b) tratar de reducir los movimientos redundantes entre registros, y c) resolver los saltos a etiquetas,

26 mayo 2005

Visual ZVM

Publicada la versión 2.0.61, que corrige algún pequeño error en la versión 2.0.6 y añade respecto a la 2.0.5 un entorno que permite crear objetos, atributos y métodos; compilar métodos y cambiar el objeto al que apunta un atributo; y finalmente explorar el espacio de contenedores de Zero de una manera excepcionalmente interactiva, como Self.


Cambios en el web: se añade un tutorial para el entorno, se completan las publicaciones y se actualizan los pantallazos.

05 mayo 2005

Más ejemplos y mejor web

Una gran actualización: se ha mejorado la web, incorporando ahora ejemplos y un nuevo manual de documentación (la documentación nunca es suficiente). En cuanto a la máquina virtual, ahora dispone de reflexión estructural (antes sólo para atributos, ahora incluso se pueden compilar nuevos métodos en tiempo de ejecución), y se han pulido varios pequeños errores.

También hay una nueva sección de publicaciones.

Algunos ejemplos en Zero.

03 febrero 2005

Reflexión estructural

La reflexión estructural consiste en poder consultar atributos y métodos de un objeto (introspección), y además, poder cambiarlos.

Lo más complicado es permitir cambiar (es decir, recompilar) los métodos, y ésto supone que el compilador debe estar dentro de la máquina virtual, lo cuál supone una pequeña reorganización del código.

Con la nueva versión ya publicada en la web, se pueden hacer cosas así:


__this.addAttribute( "color", "black" )

__this.addAttribute( "doors", 4 )

reference args = VectorInstance.copy( "" )

__this.addMethod( "f", args )

__this.compileToMethod(

          __this.getMethodNumberByName( "f" ),

          "STR \"¡Hola!\"\nMSG System.console write __acc\nRET"

)

02 diciembre 2004

Conferencia en la EUITIO

Ayer impartí una charla en la EUITIO (Escuela Universitaria de Ingeniería Técnica de Informática de Oviedo) sobre Zero.

Las transparencias pueden encontrarse en la página de publicaciones.

Conferencia en la EUITIO sobre Zero.

08 octubre 2004

Conteo de referencias

Terminada y depurada la gestión de memoria en Zero (hasta el momento, símplemente, no funcionaba). Se trata de un sistema tan básico y ampliamente reconocido como el conteo de referencias. Ha pasado casi un año (exactamente, 11 meses), desde que la máquina virtual empezó a funcionar.

Se trata de que cada vez que una referencia se hace a un objeto, su conteo de referencias se incrementa en uno. Cuando una referencia se cambia o elimina, se decrementa en uno. Al llegar a cero, se elimina el objeto.

11 septiembre 2004

Ya hay vectores nativos

Añadido el soporte nativo para vectores; ahora la librería está totalmente completa, por el momento. La librería, eso sí, ya es totalmente congruente. Existen, "Int" (enteros), "Float" (flotantes), y "String" (cadenas) como "tipos de" datos nativos, además de las estructuras de datos "Map" (vector asociativo) y "Vector", la segunda también nativa (sólo por cuestiones de rendimiento).

31 mayo 2004

Ya hay enteros

Se añade el soporte para enteros (hasta ahora sólo flotantes) y se hace una revisión casi completa de la librería.

Librería estándar

Quedan ya pocas cosas que meter en la librería interna.