articulos:zxbasic_suenyo_hecho_realidad

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
articulos:zxbasic_suenyo_hecho_realidad [24-03-2009 09:54] sromeroarticulos:zxbasic_suenyo_hecho_realidad [03-04-2009 06:45] (actual) sromero
Línea 51: Línea 51:
     * Finalmente, un ensamblador (el ZX BASIC contiene uno propio) y un enlazador de código objeto (el ZX BASIC no usa ninguno: por ahora todo se trabaja en ensamblador y se compila a binario directamente) realizan el resto del trabajo produciendo el binario final.     * Finalmente, un ensamblador (el ZX BASIC contiene uno propio) y un enlazador de código objeto (el ZX BASIC no usa ninguno: por ahora todo se trabaja en ensamblador y se compila a binario directamente) realizan el resto del trabajo produciendo el binario final.
  
-<code> +^ Frontend ^^ 
- ----------------------------------------------------------------------------------- +| Análisis Léxico | Convertir letras a palabras y símbolos | 
-|             | Análisis Léxico       Convertir letras a palabras y símbolos      +| Análisis Sintáctico | Comprobar la sintaxis y las frases | 
-| Frontend    |---------------------|-----------------------------------------------| +Análisis Semántico | Comprobar los tipos de variable,\\ declaraciones duplicadas o fuera de contexto.\\ Construcción del Árbol Sintáctico. | 
-|             | Análisis Sintáctico |   Comprobar la sintaxis y las frases          + Optimización del Árbol  || 
-            |---------------------|-----------------------------------------------| + Generación de Código Intermedio  || 
-|                                 | Comprobar los tipos de variable,              | + 
-|             | Análisis Semántico declaraciones duplicadas o fuera de contexto. +^ Backend para ZX Spectrum ^^ 
-|                                 Construcción del Árbol Sintáctico.            + Traducción a Ensamblador (Z80)  || 
-            |---------------------------------------------------------------------| + Optimización de Código Ensamblador (reordenación de registros, etc)  || 
-|                                 Optimización del Árbol                          | + Ensamblado: Traducción a Código Máquina (o Código Objeto)  |
-|             |---------------------------------------------------------------------+\\ 
-            |                  Generación de Código Intermedio                    | +
-|-------------|---------------------------------------------------------------------+
-            |                 Traducción a Ensamblador (Z80)                      | +
-| Backend     |---------------------------------------------------------------------+
-para        | Optimización de Código Ensamblador (reordenación de registros, etc) +
-| ZXSpectrum  |---------------------------------------------------------------------+
-            |      Ensamblado: Traducción a Código Máquina (o Código Objeto)      +
- ----------------------------------------------------------------------------------- +
-</code>+
  
 Prácticamente todos los compiladores actuales trabajan de forma similar. La ventaja de esto es que se pueden cambiar las capas de backend de manera que es posible compilar el mismo programa para distintas arquitecturas: se podría hacer que un programa en ZX BASIC compilara para Windows, Linux, Nintendo DS, teléfono móvil, PlayStation o cualquier otra plataforma. Evidentemente cada plataforma tiene su limitación, pero dado que el ZX es la más limitada de todas sin duda, esto no debería suponer problema alguno. Los compiladores de este tipo se llaman retargeable compilers (compiladores reorientables). Prácticamente todos los compiladores actuales trabajan de forma similar. La ventaja de esto es que se pueden cambiar las capas de backend de manera que es posible compilar el mismo programa para distintas arquitecturas: se podría hacer que un programa en ZX BASIC compilara para Windows, Linux, Nintendo DS, teléfono móvil, PlayStation o cualquier otra plataforma. Evidentemente cada plataforma tiene su limitación, pero dado que el ZX es la más limitada de todas sin duda, esto no debería suponer problema alguno. Los compiladores de este tipo se llaman retargeable compilers (compiladores reorientables).
Línea 321: Línea 312:
 DO DO
     LET a = a + 1     LET a = a + 1
-UNTIL a >= 10 +LOOP UNTIL a >= 10 
-<code>+</code>
  
 Igualmente podemos usar CONTINUE DO y EXIT DO para adelantar el bucle o terminarlo anticipadamente. Igualmente podemos usar CONTINUE DO y EXIT DO para adelantar el bucle o terminarlo anticipadamente.
  
 \\  \\ 
 +
 ==== DO ... WHILE ==== ==== DO ... WHILE ====
  
Línea 369: Línea 361:
  
 \\  \\ 
 +
 ===== Salida por Pantalla ===== ===== Salida por Pantalla =====
  
Línea 630: Línea 623:
 Suena un poco nostálgico, lo sé, pero creo que hemos tenido la suerte de haberlo podido vivir. Suena un poco nostálgico, lo sé, pero creo que hemos tenido la suerte de haberlo podido vivir.
  
 +\\ 
 +===== Enlaces =====
 +
 +  * {{:articulos:zxbexamples.zip|Ejemplos en BASIC}} listos para compilar con ZXBasic.\\ (compilar con ''zxb -a -T -b programa.bas'').
  
 \\  \\ 
  • articulos/zxbasic_suenyo_hecho_realidad.1237888479.txt.gz
  • Última modificación: 24-03-2009 09:54
  • por sromero