Articulo de referencia

Turbo-BASIC XL

Turbo-BASIC XL es una versión mejorada del lenguaje de programación BASIC [ 1 ] para ordenadores Atari de 8 bits . Es un superconjunto compatible del Atari BASIC que venía inclu...

Turbo-BASIC XL es una versión mejorada del lenguaje de programación BASIC [ 1 ] para ordenadores Atari de 8 bits . Es un superconjunto compatible del Atari BASIC que venía incluido con los ordenadores. Turbo-BASIC XL fue desarrollado por Frank Ostrowski [ 1 ] y publicado en el número de diciembre de 1985 de la revista informática alemana Happy Computer . Poco después se lanzó una versión para los modelos 400/800 como Frost Basic 1.4 . Otros autores han publicado varias versiones modificadas que funcionan con diferentes sistemas DOS.

Turbo-Basic XL mejora enormemente la velocidad de ejecución con respecto a Atari BASIC. Un programa de Atari BASIC cargado en Turbo-BASIC, sin modificaciones, generalmente se ejecutaba entre tres y cuatro veces más rápido. [ 1 ] Un compilador de Turbo-Basic XL creaba ejecutables binarios , lo que aceleraba aún más el rendimiento del programa hasta aproximadamente diez veces más rápido que Atari BASIC. Turbo-Basic XL también incluye un editor ampliado, soporte para procedimientos con nombre WHILE...ENDWHILEy construcciones de bloques similares, y acceso adicional al hardware subyacente, lo que, entre otras cosas, permitía el funcionamiento de unidades de disquete conectadas sin salir a DOS .

Ostrowski pronto consiguió un trabajo en GFA Systemtechnik GmbH (en aquel entonces conocida como Integral Hydraulik ), donde adaptó Turbo-Basic XL a GFA BASIC para el Atari ST , que se convirtió en uno de los BASIC más populares de esa plataforma.

Fondo

La baja velocidad de ejecución de Atari BASIC , [ 2 ] que venía incluido con todos los modelos Atari de 8 bits , dio lugar a un mercado de intérpretes y compiladores BASIC de terceros con mejor rendimiento o más comandos. Entre ellos se encontraba una versión oficial de Microsoft BASIC vendida por Atari, Inc. y varias versiones mejoradas lanzadas por Optimized Systems Software , que había escrito el Atari BASIC original bajo contrato. También existían compiladores de Atari BASIC de varias compañías.

Turbo-Basic XL se incorporó tarde a esta lista, publicado por primera vez en diciembre de 1985 como programa de entrada en la revista Happy Computer . Existían versiones tanto de intérprete como de compilador. Turbo-Basic XL aprovechaba la memoria adicional de las máquinas de la serie XL (y posteriormente de la serie XE), lo que impedía su ejecución en los modelos originales 400 y 800. Posteriormente se lanzó una versión compatible con estos sistemas, denominada Frost BASIC (abreviatura de "Frank Ostrowski").

Los comandos internos relacionados con el disco están vinculados a versiones específicas de DOS. Se desarrollaron varias adaptaciones para diferentes versiones de DOS.

Actuación

La característica más destacada de Turbo-Basic fue su velocidad notablemente mejorada; un programa Atari BASIC sin modificar cargado en Turbo-Basic normalmente se ejecutaba de tres a cinco veces más rápido, [ 1 ] y la ventaja de velocidad mejoraba a medida que aumentaba el tamaño del programa. También contaba con un compilador que incrementaba la velocidad de los listados entre 15 y 20 veces. [ 1 ] Esto se debía en gran medida a una serie de mejoras en problemas bien conocidos del código Atari BASIC original.

En la mayoría de los BASIC, la instrucción GOTO se gestionaba leyendo el número de línea correspondiente y buscando esa línea de código en el programa. En los BASIC derivados de MS, los números de línea se almacenaban como enteros de 16 bits y constantes numéricas en el código en su formato ASCII original . Cuando se encontraba una línea como esta GOTO 1000, el intérprete utilizaba un código especial para convertir los cuatro caracteres ASCII "1000" a formato de entero de 16 bits y luego la buscaba. El BASIC de Atari funcionaba de forma diferente, convirtiendo todas las constantes numéricas a formato de coma flotante de 6 bytes al entrar en la línea. Esto significaba que el "1000" ya no estaba en formato ASCII y tenía que convertirse de coma flotante a entero. El código para hacerlo no estaba bien optimizado y podía tardar más de 2  ms (promedio de 1 a 1,5  ms).

Los bucles FOR...NEXT son otra estructura común en los programas BASIC. En la mayoría de las versiones de BASIC, cuando se encontraba la instrucción FOR durante la ejecución, su ubicación en la pila de llamadas se insertaba para poder regresar fácilmente a ella al encontrar la instrucción NEXT asociada. Por razones desconocidas, Atari BASIC insertaba el número de línea de la instrucción FOR en la pila y luego buscaba esa línea en todo el código al encontrar la instrucción NEXT. Para programas con bucles extensos, algo frecuente en BASIC, esto podía provocar una caída drástica en el rendimiento.

TurboBasic implementó sus bucles FOR utilizando la dirección, al igual que MS BASIC, y por lo tanto ejecutó bucles con un rendimiento similar al de MS. Luego fue más allá y mejoró notablemente el rendimiento de GOTO. Los números de línea se enviaban a una función hash que los dividía en bloques de 256 líneas. Al ingresar al programa, la dirección del primer bloque de cada uno de estos bloques se almacenaba en una tabla de 128 valores. En tiempo de ejecución, cuando se necesitaba una búsqueda de número de línea, primero seleccionaba el valor más cercano pero menor en la tabla, recuperaba la dirección y luego comenzaba a buscar la línea desde ese punto. La mejora fue más notable en programas grandes, donde el tiempo de búsqueda era cada vez más costoso, razón por la cual TurboBasic podía alcanzar un aumento de 5 veces en programas de mayor tamaño.

La otra causa principal del bajo rendimiento de Atari BASIC era su código de coma flotante BCD ( decimal codificado en binario ) , extremadamente lento. La biblioteca , ubicada en una ROM de 2 KB independiente y considerada parte del sistema operativo en lugar de BASIC, se había escrito con prisas y nunca se optimizó. Algunas rutinas, en particular las funciones de multiplicación y exponenciación, eran mucho más lentas de lo que deberían.

TurboBasic solucionó este problema incluyendo su propia biblioteca completa de coma flotante, que no solo corrigió muchos de estos fallos, sino que también optimizó aún más el código al desenrollar pequeños bucles. Para los programas que utilizaban matemáticas de forma intensiva, la nueva biblioteca produjo mejoras drásticas en el rendimiento, llevando al Atari de estar casi al final de las listas de Creative Computing Benchmark a estar cerca de los primeros puestos, superando a varias máquinas con hardware mucho más rápido.

Nuevas características

Entre las características adicionales de Turbo-Basic XL, añadidas a Atari BASIC, se encuentran las siguientes:

Véase también

Referencias

  1. 1 2 3 4 5 Lendino, Jamie (17 de agosto de 2023). Breakout:  Cómo las computadoras Atari de 8 bits definieron una generación . Steel Gear Press. ISBN 978-1-957932-04-0.
  2. Ahl, David (noviembre de 1983). "Prueba de comparación de referencia" . Creative Computing . pág. 260. 
  • Fetzer, Ron (1985). Documentación ampliada de Turbo-BASIC XL (PDF) .
  • Listados de Turbo-Basic XL dela revista Happy Computer
Obtenido de " https://en.wikipedia.org/w/index.php?title=Turbo-BASIC_XL&oldid=1320766458 "