Articulo de referencia

XPL0

XPL0 es un lenguaje de programación que es esencialmente una combinación de Pascal y C. Se parece un poco a Pascal, pero funciona más como C. Fue creado en 1976 por Peter JR Boy...

XPL0 es un lenguaje de programación que es esencialmente una combinación de Pascal y C. Se parece un poco a Pascal, pero funciona más como C. Fue creado en 1976 por Peter JR Boyle, quien buscaba un lenguaje de alto nivel para su microordenador y quería algo más sofisticado que BASIC , que era el lenguaje dominante para ordenadores personales en aquel momento.

XPL0 se basa en PL/0 , un compilador de ejemplo que aparece en el libro Algorithms + Data Structures = Programs de Niklaus Wirth . El primer compilador de XPL0 se escribió en ALGOL . Generaba instrucciones para una pseudomáquina que se implementó como intérprete en un ordenador de Digital Group basado en el microprocesador 6502. El compilador se convirtió de ALGOL a XPL0 y, posteriormente, pudo autocompilarse y ejecutarse en un microordenador.

XPL0 pronto demostró su valía en una variedad de productos basados ​​en el 6502. De lo contrario, el código de estos sistemas embebidos se habría escrito en lenguaje ensamblador , lo cual es mucho más tedioso.

Boyle utilizó XPL0 para escribir un sistema operativo de disco llamado Apex. A partir de 1980, este se vendió, junto con XPL0, como una alternativa a Apple DOS para el ordenador Apple  II, que estaba basado en el procesador 6502.

Desde sus inicios, XPL0 se ha implementado en una docena de procesadores y se le han añadido numerosas funciones. Actualmente, existen compiladores de código nativo optimizados para enteros de 32 bits, en lugar de las versiones originales de 16 bits. En el siguiente enlace encontrará compiladores de código abierto para Windows y MS-DOS en PC, y para Linux en Raspberry Pi .

Ejemplos

Así es como se codifica el programa tradicional "Hola Mundo" en XPL0:

 Código Texto=12; Texto(0, "¡Hola mundo!")

La función `text` es una rutina integrada que genera una cadena de caracteres. El cero  (0) indica dónde enviar la cadena. En este caso, se envía a la pantalla, pero también podría enviarse a una impresora, un archivo o a través de un puerto serie utilizando un número diferente.

En XPL0, todos los nombres deben declararse antes de poder usarse. El comando `code` asocia el nombre `Text` a la rutina integrada número 12, que es la que genera cadenas de texto. Existen alrededor de cien de estas rutinas integradas que ofrecen funcionalidades como entrada y salida de datos, gráficos y funciones trigonométricas.

Las versiones de 32 bits de los compiladores insertan automáticamente las declaraciones de código, por lo que el programa anterior se puede escribir simplemente como:

 Texto(0, "¡Hola mundo!")

El algoritmo TPK proporciona un ejemplo que puede compararse con otros lenguajes:

 función real F(T); T real; devolver sqrt(abs(T)) + 5.*Pow(T, 3.); entero I; real Y, A(11); [para I:= 0 a 10 hacer A(I):= RlIn(0); para I:= 10 hasta 0 hacer [Y:= F(A(I)); Si Y > 400. entonces [IntOut(0, I); Text(0, " DEMASIADO GRANDE")] más [IntOut(0, I); RlOut(0, Y)]; CrLf(0); ]; ]

Los gráficos han sido una característica de XPL0 desde sus inicios en el  ordenador Apple II.

 entero X, Y, Color; [SetVid($101); \establecer el modo de vídeo a 640x480x8 repetir para Y:= 0 a 128-1 hacer para X:= 0 a 128-1 hacer Punto(X, Y, X o Y xor Color); Color:= Color+1; RetrasoUS(50_000); \0,05 segundos hasta ChkKey; ]

Referencias

  • Fish, Larry (febrero de 1979). "Un lenguaje estructurado en bloques para microcomputadoras". Kilobaud , pág. 24.
  • Sitio web oficial de XPL0. Archivado el 5 de septiembre de 2011 en Wayback Machine.
  • Manual del lenguaje de programación XPL0 archivado el 2 de julio de 2012 en Wayback Machine.
  • La historia detrás de Apex y XPL0