Skip to main content.
Mayo 5th, 2008  español 

A ZX Spectrum BASIC Compiler

Computer Science

Wow! My last post was two months ago!
What have I been doing meanwhile? Well, right now, besides attending my job ;) I’m attending the PhD course on Physics and Computer Science at Universidad de La Laguna.

My favorite subjects are, yes, you guess it, Parallel computing and Computer languages (Compilers, Language processors, etc…)

I’m currently programming a ZX Spectrum BASIC cross compiler in my (little) spare time. It’s entirely written in python, and almost finished (hope to release V1.0 this month). It’s a three stage retargeable compiler. The backend outputs Z80 code, so it should be easily portable to other Z80 micros such as AMSTRAD or MSX. Porting to other architectures, or even to .NET or Java it’s also possible by changing the backend module could also be implemented.

Regarding to the language, It’s not the ZX Spectrum original BASIC but a dialect very close to FreeBasic which allows function definitions and more complex control-flow structures. The URL contains an almost complete specification, although not all of them has been implemented in the ZX for obvious reasons.

Some features:

You can download current alpha builds or visit the forum for suggestions, comments, etc.

Update: I’ve just finished it! Visit the compiler page for more information.

Comparte el artículo:These icons link to social bookmark sites which allow other readers to discover and share new webs and posts.
  • del.icio.us
  • digg
  • fresqui
  • meneame

Posted by Boriel as Compilers, Computer Science

Rate This Post: 1 Stars2 Stars3 Stars4 Stars5 Stars
1 Votes | Average: 5 out of 51 Votes | Average: 5 out of 51 Votes | Average: 5 out of 51 Votes | Average: 5 out of 51 Votes | Average: 5 out of 5 (1 votes, average: 5 out of 5)

 

This entry was posted at 8.06 pm and is filed under Compilers, Computer Science. You can follow any responses to this entry through the comments RSS 2.0 feed. You can leave a response, or trackback from your own site.

5 Responses to “A ZX Spectrum BASIC Compiler”

  1. [Spain] El Rincón de Boriel » Blog Archive » ZX BASIC 1.0 released! says:

    [...] on my behalf, have something else to celebrate: I’ve eventually released 1.0 version of the ZX Spectrum BASIC compiler. You can download it and give it a try, if [...]

  2. Francisco León says:

    Hola.
    primero que nada mis felicitaciones por este proyecto de hacer un compilador para el viejo Gomas. he releido toda la lista de sentencias disponibles compatibles sinclair basic pero no veo una que he extrañado en todas las otras versiones de basic la instrucción PAUSE que siempre he considerado muy util en diversos casos.

  3. [Spain] Boriel says:

    Hola, Francisco:

    Gracias por tus felicitaciones. Lo cierto es que el comando PAUSE no lo puse, porque lo vi muy específico para la plataforma ZX, y me gustaría que este compilador sirviera para otras plataformas en el futuro.

    PAUSE al final está implementado como una función. PAUSE(xx), y además, hay que poner al principio del programa un #include:
    #include once <pause.bas>

    …para usar la librería. Pero dado varias personas (incluido tu :) ) insisten en ello, en la siguiente versión del compilador la pondré como instrucción del BASIC.

    La definición de PAUSE xx es: Hacer una pausa durante xx “cincuentavos” de segundo (sesentavos en EE.UU) salvo que se pulse una tecla. Como puedes ver es poco estándar. Por eso la saqué a una librería (como POINT o ATTR).

    Piensa que este BASIC también podría correr sobre Java, .NET, Linux o PS3 por poner un ejemplo.

  4. Francisco León says:

    Hola.
    cest la PAUSE, vive la PAUSE!
    Creo que es perfecto eso de que la funciones esten en una librería pues eso permirtiría incrementar la lista a diferencia del original speccy. Por ejemplo Betabasic le añadía funciones mucho más típicas de gwbasic como INSTRING o STRING$ o USING.
    Excepto por la memoria y el video, Betabasic ya dotaba al spectrum de comandos propios de otras máquinas y le añadió DEFPROC antes que naciera QB para PC’s.

  5. [Spain] Boriel says:

    Bueno, en la versión 1.0.2 (que ya está disponible para descargar) ya tienes el PAUSE de toda la vida (implementado como una sentencia). Así que los programas de ZX Spectrum son más compatibles que antes. ;)

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WP Hashcash