2008
05.05

¡Vaya! Ya han pasado dos meses desde mi última entrada.
¿Que en qué he estado metido? Bueno, pues ahora mismo, aparte de trabajar 😉 estoy haciendo el doctorado de Física e Informática en la Universidad de La Laguna.

Mis temas favoritos son, sí, lo has adivinado, Computación paralela y Lenguajes de Computadoras (Compiladores, Procesadores de Lenguajes, etc…)

Ahora mismo estoy trabajando, en mis (pocos) ratos libres, en desarrollar un compilador cruzado de BASIC para ZX Spectrum. Está escrito en python, y bastante avanzado ya (espero terminarlo este mes). Se trata de un compilador de 3 fases, cuyo backend produce código para Z80. Así que debería ser muy fácil producir código micros basados en esta CPU, como el AMSTRAD o el MSX, etc… Implementarlo para otras arquitecturas (o incluso para que produzca código para Java o .NET) no debería ser muy complicado, ya que sólo habría que cambiar el backend.

Respecto al lenguaje que compila, no es exactamente el BASIC original del ZX Spectrum, sino una variante más moderna, que permite funciones, y estructuras de control de flujo más complejas, llamada FreeBasic. En esta web tienes la especificación completa, aunque no todas las cosas están implementadas por motivos obvios.

Algunas de las características:

  • Definición de funciones con ámbito local y paso de parámetros por valor y por referencia
  • Arrays multidimensionales de cualquier tipo de dato
  • Paso de cadenas por valor y por refencia
  • Gestor de memoria dinámica
  • Código ASM inline dentro del BASIC
  • Completamente extensible con tus propias funciones

Puedes descargar las versiones alfa actuales, o visitar los foros para comentarios y sugerencias, etc…

Actualización: Lo acabo de terminar! Visita la página del compilador para más información.

Share