Programación BASIC en Espacio TEC

El Museo de informática Espacio TEC de Bahía Blanca brinda la posibilidad de programar en BASIC tal y como lo hacíamos en los 80’s. Desde el 17 de septiembre, la muestra se presenta todos los sábados de 16 a 20:30 hs. Bajo el título «Y si programamos en BASIC?«, el evento nos permite programar en diversas plataformas informáticas, desde IBM PC y compatibles hasta algunas de las home computers más famosas de la década, como Commodore y MSX.

Los lenguajes de programación son uno de los temas más importantes y en constante evolución a lo largo de la historia de las computadoras. Desde el comienzo de la informática (tal y como la conocemos hoy en día) se viene trabajando en lenguajes de programación y sus distintas implementaciones para las máquinas disponibles en cada época.

En los lenguajes de programación de primera generación las instrucciones ejercían un control directo sobre el hardware y estaban condicionados por la estructura física de las computadoras que los soportaban. Estos lenguajes son llamados de bajo nivel o simplemente “lenguaje de máquina”. Cuando decimos “de bajo nivel” no implica que sea menos potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el lenguaje y el hardware de la máquina.

En contraposición a esos lenguajes de primera generación, los lenguajes de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana y se crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de una manera más fácil y rápida.

BASIC

El lenguaje BASIC es conocido por dar a la programación de computadoras un rostro humano y hacerla accesible a todo el mundo. BASIC son las siglas de “Beginners’ All-purpose Symbolic Instruction Code” o en castellano “Código simbólico de instrucciones de propósito general para principiantes” que se convirtió en una familia de lenguajes de programación de alto nivel.

Desarrollado como una herramienta de enseñanza, el BASIC original, llamado Dartmouth BASIC, fue diseñado en 1964 por John George Kemeny, Thomas Eugene Kurtz y Mary Kenneth Keller en el Dartmouth College en New Hampshire, Estados Unidos, como un medio para facilitar la programación de computadoras a estudiantes y profesores que no fueran de ciencias. En aquella época, el uso de las computadoras requería codificar software hecho a medida, con lo cual la tarea quedaba restringida a personas con cierta formación, como científicos y matemáticos.

El BASIC fue diseñado para permitir a los estudiantes escribir programas usando terminales en tiempo compartido. Estaba pensado para reducir notablemente la complejidad de los otros lenguajes del momento, con uno diseñado específicamente para la clase de usuarios que los sistemas de tiempo compartido permitían: un usuario más sencillo, fuera del área de las ciencias de la computación, a quien no le interesaba tanto la velocidad sino el hecho de ser capaz de programar y usar la máquina sin demasiadas complicaciones. Los diseñadores del BASIC también querían que permaneciera en el dominio público, lo cual contribuyó a que se diseminara rápidamente.

Algunos de los principios que rigieron el diseño del BASIC fueron: 1) ser fácil de usar para los principiantes; 2) ser un lenguaje de propósito general (no orientado); 3) permitir a los expertos añadir características avanzadas, conservando simple el lenguaje para los principiantes; 4) ser interactivo en todos los casos; 5) proveer mensajes de error claros y amigables; y 6) no requerir un conocimiento del hardware de la computadora. El BASIC se extendió hacia muchas máquinas y plataformas, y se popularizó moderadamente, hasta que a partir de 1975 tuvo un crecimiento explosivo.

La llegada a los hogares

En 1975 sucedió algo que cambiaría la historia para siempre: se lanzó al mercado la mítica MITS Altair 8800, la primer microcomputadora de éxito, que se hizo extremadamente popular y se convirtió en la inspiración de lo que estaba por venir: la computación personal. El caso es que Altair, con motivo del lanzamiento de su 8800, contrató a unos desconocidos Bill Gates y Paul Allen, fundadores de una empresa también desconocida llamada Microsoft, para desarrollar el Altair BASIC. Fue el primer producto desarrollado por Microsoft. Gates y Allen, junto con el programador Monte Davidoff, crearon el intérprete BASIC para la Altair 8800, desarrollo que ejecutaron en tan solo un mes y entregaron en una cinta de papel. La versión original tenía rutinas para matemáticas de punto flotante (poco usual en ese entonces). El sistema tuvo mucho éxito, y empezó a copiarse entre los aficionados de esa plataforma. Ésto desencadenó una famosa carta contra la piratería escrita por el mismísimo Bill Gates.

En respuesta a la carta de Gates sobre el robo de su Altair BASIC, Dennis Allison, de la Universidad de Stanford, publicó una especificación libre y gratuita de una versión de BASIC para la Altair 8800 a la que llamó Tiny BASIC. Esta implementación era un subconjunto del BASIC original pero cabía en 2 o 3 Kb de memoria. Allison y Bob Albrecht lanzaron una revista y publicaron en 1976 el código de este pequeño intérprete. El Tiny BASIC original había sido escrito por el Dr. Li-Chen Wang.

Con el nacimiento de Apple, y la llegada de las Apple I y Apple II, Steve Wozniak creó la primera versión de BASIC para el microprocesador MOS 6502: el Integer BASIC. Wozniak usó como referencia y guía el manual del HP BASIC. Su intención era hacer un lenguaje simple para crear juegos, de ahí que él lo llamara “Game BASIC” originalmente. De hecho, usó esa implementación para escribir en la Apple su propia versión del juego Breakout de Atari. Integer BASIC no tenía soporte para matemáticas de punto flotante, pero justamente por esa misma razón era mucho más rápido.

Sin embargo, Apple necesitaba (además del Integer BASIC) una versión del BASIC que tuviese matemáticas de punto flotante. Wozniak comenzó entonces a modificar su BASIC, pero eventualmente la compañía pensó que era más rápido licenciar la versión de BASIC de Microsoft para el microprocesador MOS 6502. A esta versión se le llamó Applesoft BASIC. Tenía operaciones de punto flotante, arreglos multidimensionales y funciones definidas por el usuario, pero todo esto lo hacía más lento que su contraparte del Integer BASIC.

Además de Apple, otras compañías como IMSAI y North Star intentaron seguir los pasos del éxito de Altair, creando la revolución de la computación hogareña. El lenguaje BASIC se convirtió en una característica estándar para casi todas las computadoras hogareñas. La mayoría venía con un sistema operativo básico y el intérprete BASIC, todo alojado en una memoria ROM. La primera vez que sucedió ésto fue en 1977 cuando Commodore lanzó la Commodore PET 2001. La primera computadora de Commodore tenía incorporado el Commodore BASIC, también llamado PET BASIC por haber sido creado en esa máquina. El Commodore BASIC en el BASIC de Microsoft para el MOS 6502.

Cuenta la leyenda que, inicialmente, Bill Gates aspiraba a que se pagara una licencia por cada BASIC que se instalara en la ROM de todas las computadoras que fabricase Commodore, en razón de 3 dólares cada una. Jack Tramiel, el fundador de Commodore, desestimó esa exigencia y, a cambio, le ofreció comprar una licencia global por tiempo indeterminado por solamente 25.000 dólares. Gates, en ese momento, no podía saber que durante los siguientes años todas las computadoras de Commodore tendrían el mismo BASIC integrado. Con el tiempo, Commodore alcanzó volúmenes de ventas en el orden de los millones de computadoras vendidas, evitando de esa manera que Microsoft ganara una fortuna. La leyenda también cuenta que Jack Tramiel fue el único que pudo doblegar a Bill Gates.

En enero de 1977 Commodore se convirtió en la primera compañía en anunciar una computadora personal para los hogares. Entre las características de la PET 2001 sobresalían sus 4 Kb de memoria junto a su teclado y monitor integrados en la carcasa, todo por 595 dólares. El suceso inicial de Commodore precedió al de muchos de sus competidores, incluyendo Apple, y atrajo a otros fabricantes como Radio Shack y Atari.

La edad dorada de la computación

La popularidad del lenguaje BASIC fue tal que la gran mayoría de las computadoras hogareñas comercializadas en los años 80’s contaban con un intérprete BASIC preinstalado en su memoria ROM. El BASIC se convirtió, de facto, en el lenguaje preferido de los usuarios y aficionados a la computación personal, hasta el punto que las revistas del sector facilitaban el código para programar tus propios juegos, por lo que solo tenías que introducir las instrucciones indicadas en los artículos. Precisamente la naturaleza del BASIC fue lo que le dio tanto éxito, con comandos e instrucciones simples. Fue la puerta de entrada a la informática para los primeros usuarios de computadoras en los años 70’s y 80’s.

A continuación, veamos algunas de las implementaciones del lenguaje BASIC en varias de las plataformas informáticas más populares.

IBM BASIC

En 1979 Microsoft estaba negociando con varios vendedores de microcomputadoras, incluyendo IBM, para licenciar un intérprete BASIC. En 1981, cuando IBM lanzó al mercado la IBM 5150, su primer computadora personal, apareció la primer versión del IBM BASIC, una licencia del BASIC de Microsoft de la cual originalmente había tres versiones: IBM Cassette BASIC (BASIC-C), que se incluyó en la memoria ROM de las PC sin diskettera; IBM Disk BASIC (BASIC-D), que usaba los diskettes para guardar programas y datos y era iniciado automáticamente siempre que no se colocara ningún diskette de arranque como sistema operativo; y el IBM Advanced BASIC (BASIC-A), que estaba incluido en el disco del IBM PC-DOS.

El BASIC-A fue muy popular en los primeros años de la IBM PC, pero cuando llegaron las PC-compatibles Microsoft desarrolló una nueva versión del BASIC(tal vez la más famosa de los años 80’s en el mundo PC): el GW-BASIC.

Commodore BASIC

Creado en la Commodore PET 2001, y basado en el BASIC de Microsoft para el microprocesador MOS 6502 por el que Commodore hizo un único pago, tenía una serie de modificaciones hechas por Commodore (cambiando, por ejemplo, el prompt de OK por READY) mediante las cuales se quitaron las referencias de derechos de autor de Microsoft. El Commodore BASIC nació en 1977 y evolucionó con el correr de los años, estando presente en todas las computadoras de 8 bits de Commodore como la VIC-20, la Commodore 64 (BASIC 2.0), la Commodore 16 (BASIC 3.5) y la Commodore 128 (BASIC 7.0).

Cuando Commodore pagó por una versión actualizada del BASIC de Microsoft, la empresa de Bill Gates insertó el famoso “easter egg” WAIT 6502,1 en la versión 2 del Commodore BASIC. Al tipear WAIT 6502,1 en una Commodore PET con la versión 2 se muestra la cadena “MICROSOFT” en la esquina superior izquierda de la pantalla de inicio, reemplazando a “Commodore”. El propio Bill Gates escribió el código del huevo de pascua luego de una discusión con Jack Tramiel y argumentando que lo hacía “por si acaso Commodore alguna vez intenta afirmar que el código no era de Microsoft”.

Atari BASIC

El Atari BASIC fue creado por Paul Langhton y Kathleen O’Brien para las primeras computadoras Atari de 8 bits, la Atari 400 y la Atari 800. Atari compró el código fuente de una versión del Microsoft 8K BASIC para el MOS 6502 con la intención de adaptarlo para su línea de home computers, pero los ingenieros de Atari se vieron ante un gran problema al intentar reducir el BASIC y hacerlo caber en los cartuchos Atari de 8K, entre otras cosas porque el código proporcionado por Microsoft carecía de documentación adecuada. Entonces tuvieron que pedir ayuda a la compañía Shepardson Microsystems (SMI) para que completara el BASIC dentro del límite de 8K. Con el tiempo hubo tres revisiones (A, B y C) del Atari BASIC.

Si bien el Atari BASIC venía en cartucho para los primeros modelos de computadoras Atari, en los modelos siguientes estaba incluido en la ROM interna de la máquina. Al igual que otras variantes del BASIC, era un lenguaje interpretado. Esto permitía que las sentencias de programa pudieran ser ejecutadas y probadas inmediatamente al ser ingresadas, sin necesidad de etapas intermedias de compilación o enlace.

Sinclair BASIC

Sinclair, por su parte, creó el Sinclair BASIC y lo implementó en toda su línea de computadoras, desde la ZX80 hasta las diferentes versiones de la ZX Spectrum. En general, el Sinclair BASIC era una versión de BASIC clásico que utilizaba números de línea y no admitía programación estructurada.

Sinclair contrató a Nine Tiles Networks para escribir el software de la ZX80, incluyendo un nuevo intérprete de BASIC, evitando así pagarle a Microsoft por el suyo. John Grant y Steve Vickers crearon el Sinclair BASIC basado en el estándar mínimo ANSI. La última versión del Sinclair BASIC data de 1987, presente en la ZX Spectrum +3 fabricada por Amstrad.

TI-BASIC

Texas Instruments, que había desarrollado el TI-BASIC para integrarlo en algunas de sus calculadoras gráficas programables, incorporó una versión adaptada en la ROM de sus computadoras, como es el caso de la TI-99/4A que poseía el TI-BASIC y, a través de un cartucho, el TI Extended BASIC.

Existen dos variantes básicas del TI-BASIC. Una es la incluida en las calculadoras basadas en el procesador Zilog Z80 tales como las TI-82 y TI-85. Otra es la que se incluye en las calculadoras basadas en el procesador Motorola 68000, como las TI-89, TI-92 y TI Voyage 200.

MSX-BASIC

El MSX-BASIC es una versión ampliada del Microsoft Standard BASIC, versión 4.5, e incluye soporte para gráficos, música y varios periféricos conectados a las computadoras MSX. En general, el MSX-BASIC fue diseñado para seguir el GW-BASIC, una de las versiones de BASIC estándar para computadoras de 16 bits. Durante la creación del MSX-BASIC se hizo un gran esfuerzo para que el sistema fuese lo más flexible y ampliable posible.

Desarrollado por Microsoft en 1983 para la norma MSX, existen varias versiones del MSX-BASIC. La última es la 4.1 incluida en la Panasonic FS-A1GT (MSX Turbo R), lanzada solamente en Japón.

Locomotive BASIC

Amstrad, en tanto, recurrió a la compañía británica Locomotive Software para la creación del Locomotive BASIC, el intérprete presente en toda la gama de computadoras CPC de Amstrad. Se trataba de una implementación del BASIC sencilla, pero potente para su época, que compitió, entre otros, con el BASIC de la Commodore 64, el cual no disponía de comandos dedicados para gráficos o sonido. Lo malo del Locomotive BASIC fue la ausencia de programación estructurada, algo común en casi todos los intérpretes BASIC de su tiempo.

Tuvo dos versiones, la 1.0 incluida en todas las Amstrad CPC 464 y en las Amstrad CPC 472 con teclado en inglés, y la versión 1.1 suministrada con el resto de la gama CPC de Amstrad. El Locomotive BASIC fue luego editado para la ZX Spectrum +3.

Mac BASIC

Cuando Apple desarrolló la primera Macintosh decidió que necesitaba al menos un intérprete BASIC. Don Denman, quien ayudó a portar el Applesoft BASIC de la Apple II a la Apple III, creó una nueva implementación de BASIC que sacaba ventaja de la interfaz gráfica de la Mac y que podía correr varios programas de forma simultánea.

Llamado Mac BASIC, éste incluía un entorno integrado de desarrollo y, aunque la versión beta se lanzó en 1985, Mac BASIC fue sustituido por el Microsoft BASIC como parte de un trato entre Apple y Microsoft para renovar la licencia de Applesoft BASIC ese mismo año.

Amiga BASIC

El Amiga BASIC fue creado por Microsoft para el AmigaOS en 1985 y se incluyó en la computadora Amiga 1000. Tenía una API para acceder al sonido y los gráficos de manera versátil, y fue la primera implementación de BASIC que abandonó el número de línea y también la primera vez que se podían hacer llamadas a funciones del sistema operativo a través de una biblioteca dinámica.

Con comandos que facilitaron la creación de objetos en movimiento, los sprites se podían dibujar con un programa de dibujo externo, el Object Editor, que se proporcionaba con el Amiga BASIC. Sin embargo, el propio Amiga BASIC quedó obsoleto debido a incompatibilidades con el AmigaOS 2.0. Algunas de esas incompatibilidades se debieron al incumplimiento de las pautas de programación establecidas por Commodore.

Algunas versiones del Amiga BASIC lanzadas por terceros continuaron funcionando con el AmigaOS 2.0 y, como fueron compiladas en lugar de interpretadas, se ejecutaron mucho más rápido que la original.

Más info sobre Espacio TEC en https://espaciotec.com.ar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *