Articulo de referencia

BÁSICO-8

BASIC-8 es un lenguaje de programación BASIC para las minicomputadoras de la serie PDP-8 de Digital Equipment (DEC) . Fue el primer dialecto de BASIC lanzado por la compañía, y ...

BASIC-8 es un lenguaje de programación BASIC para las minicomputadoras de la serie PDP-8 de Digital Equipment (DEC) . Fue el primer dialecto de BASIC lanzado por la compañía, y su éxito llevó a DEC a producir nuevos BASIC para sus futuras máquinas, en particular BASIC-PLUS para la serie PDP-11 . La adopción de BASIC por parte de DEC consolidó el uso del lenguaje como el lenguaje de programación estándar para fines educativos y de utilidad de su época, lo que, sumado a sus bajos requisitos de sistema, convirtió a BASIC en el lenguaje principal durante el lanzamiento de las microcomputadoras a mediados de la década de 1970.

Historia

David Ahl se unió a la creciente división de ventas educativas de Digital Equipment (DEC) en 1969. La división se dedicaba principalmente a vender la minicomputadora PDP-8 a escuelas secundarias y universidades . [ 1 ] Estas aún no estaban muy extendidas; una máquina típica para un solo usuario a finales de la década de 1960 costaba alrededor de $10,000 ( equivalente a $92,600 en 2025 ), sin incluir el almacenamiento masivo y otros periféricos . [ 2 ]

Por esta época, tanto Hewlett-Packard (HP) como Honeywell habían presentado nuevos miniordenadores de 16 bits con tiempo compartido que se estaban popularizando en el sector educativo. En particular, HP había lanzado el HP 2100 de 16 bits en 1966 para el mercado técnico y se sorprendieron al descubrir que también se vendía en el mercado empresarial. Decidieron aprovechar esta situación empaquetando la máquina con HP Time-Shared BASIC como el HP2000 para su venta en los mercados de programación y educación. [ 3 ] Aunque el HP2000 era mucho más caro que el PDP-8, al compartir el acceso entre muchos usuarios, normalmente hasta 16 a la vez, el coste efectivo por usuario era mucho menor que el de las máquinas de un solo usuario.

En aquel entonces, DEC promocionaba intensamente su propio lenguaje para uso educativo, FOCAL , una versión reducida de JOSS . El lenguaje contaba con varias características que le permitían ejecutarse con una memoria extremadamente limitada, incluyendo los 4  KB de memoria principal del PDP-8 . Era conceptualmente similar a BASIC, especialmente en el método interactivo de escritura de programas y en la estructura general de los mismos. Ahl recopilaba los programas FOCAL enviados por los usuarios y los publicaba en el boletín informativo EDU del departamento. [ 1 ]

Ahl descubrió que los clientes potenciales no estaban interesados ​​en FOCAL, al menos fuera del área de Boston , donde se ubicaba DEC. BASIC ya era ampliamente utilizado en ese momento, y una creciente biblioteca de programas educativos y juegos en BASIC estaba disponible. Estos se publicaban en formato de boletín informativo , casi siempre en el dialecto HP2000, y el enorme volumen de programas BASIC estaba saturando a FOCAL. Ahl no encontró ningún interés por parte de la gerencia de DEC ni del departamento de desarrollo de software en producir una versión de BASIC, [ 2 ] ni tampoco interés alguno en brindar soporte para FOCAL en las demás máquinas de su catálogo. También observó una creciente hostilidad hacia la idea de permitir que cualquier otra compañía produjera una versión del lenguaje. [ 1 ]

Tras concluir que el PDP-8 necesitaba un BASIC para competir en el mercado educativo, contrató a un programador de la zona de Brooklyn para que lo desarrollara. [ 1 ] Este se convirtió en BASIC-8. Para facilitar su adopción, Ahl adaptó personalmente varios programas populares de FOCAL, en particular los juegos Lunar Lander y The Sumerian Game , a los que renombró Hamurabi . [ 4 ] BASIC-8 fue un éxito de ventas inmediato, y a principios de la década de 1970 la empresa volvió a ser una opción popular en el mercado educativo. La empresa comenzó a empaquetar sistemas de forma similar al HP2000, con una línea de "Edusystems" adaptados a diferentes necesidades. [ 5 ]

Aunque DEC continuó promocionando FOCAL, su uso se desvaneció casi instantáneamente con el lanzamiento de BASIC-8. DEC llegó a ofrecer cinco BASIC diferentes para el PDP-8, cada uno de los cuales compensaba las limitaciones de la implementación mínima original. Con el lanzamiento del PDP-11 en 1970, se ofreció un dialecto completamente nuevo y mucho más amplio: BASIC-PLUS . [ 1 ] Los clientes se quejaron de las variaciones entre los dialectos, pero Ahl afirmó más tarde que si hubiera sido tan estricto con esos detalles, habría tardado otros dos años en lanzar los productos. [ 2 ]

Ahl también había notado otro hecho curioso; cuando comenzaron a publicar el boletín EDU, esperaban entre 2000 y 3000 suscriptores, unos 10 para cada uno de los 300 sitios educativos de DEC. En 18 meses, la circulación había alcanzado los 20 000, significativamente más que todos los ordenadores en el ámbito educativo. Cuando investigó, descubrió que muchos suscriptores ni siquiera tenían un ordenador, y mucho menos uno de DEC, y lo leían en busca de ideas sobre cómo podrían usarse los ordenadores en la educación. Esto llevó a considerar la posibilidad de crear una revista informática independiente centrada en la educación. [ 2 ] Invariablemente, la sección más popular de EDU eran los listados de BASIC, especialmente los juegos. Esto lo llevó a decidir recopilar los programas más populares, en particular Star Trek , en forma de libro como 101 BASIC Games de 1973. Este vendió decenas de miles de copias en tres tiradas. [ 1 ] [ 6 ]

A pesar de cierto éxito por parte de la división educativa, al comienzo de la recesión de 1973-1975 , DEC decidió reducir el tamaño del grupo. Cuando Ahl se quejó de que la división debía ser desalojada, su jefe lo incluyó en la lista de personas que serían despedidas . Incluso antes de recibir su último cheque, fue recontratado en un grupo de hardware recién formado en DEC. [ 6 ] Produjeron dos pequeños prototipos de computadoras, un diseño todo en uno basado en el PDP-8 y un sistema ligeramente más grande basado en el más nuevo PDP-11 . Otras divisiones de la empresa se preocuparon de que esto pudiera afectar sus propias ventas y comenzaron a manifestarse en contra de los sistemas. Esto finalmente llegó al escritorio de Ken Olsen , quien finalmente declaró que no podía entender por qué alguien querría una computadora para su uso personal. [ 6 ] El proyecto fue cancelado. [ 1 ]

Ahl dejó la empresa y se unió al departamento de ventas educativas de AT&T . Ahl había seguido publicando EDU antes de dejar DEC, pero con su partida, solo se publicaron una o dos ediciones más antes de que la empresa la abandonara. Esto dejó el mercado en manos de HP, que para entonces ya tenía una amplia distribución de sus programas BASIC en el boletín de People's Computer Company y en la colección del Consorcio de Informática Educativa de Minnesota (MECC), que crecía rápidamente. Al notar la falta de un boletín como EDU dirigido específicamente al mercado educativo, Ahl pronto fundó la revista Creative Computing y más tarde dejó AT&T para producirla a tiempo completo. [ 1 ] En 1975 compró los derechos de 101 BASIC Games a DEC y lo relanzó como BASIC Computer Games . Este se convirtió en el primer libro de informática en vender un millón de copias. [ 1 ] [ 6 ]

El dialecto de HP sirvió de base para muchas de las primeras implementaciones de BASIC para ordenadores personales , incluyendo Integer BASIC y Atari BASIC, entre otros. Bill Gates había usado BASIC-PLUS en el instituto, y esto sentó las bases de lo que se convertiría en Altair BASIC en 1975. El desarrollo y la venta continuos de variantes de Microsoft BASIC para múltiples plataformas llevaron a que el dialecto de DEC se convirtiera finalmente en el estándar de facto en los ordenadores domésticos, en lugar de la versión de HP. [ 1 ]

Descripción

Como la mayoría de las versiones de BASIC, BASIC-8 podía operarse en "modo inmediato", donde los usuarios escribían comandos y recibían una respuesta inmediatamente (como una calculadora de mano), o en "modo diferido", donde las entradas se almacenaban para su posterior ejecución mediante el comando RUN. El modo diferido se activaba escribiendo un número de línea al comienzo de una línea de texto. En BASIC-8, los números de línea podían ir del 1 al 2046; [ 7 ] el PDP-8 era una máquina de 12 bits y normalmente almacenaba un valor de −2048 a +2047 en una sola palabra . [ 8 ]

Como era común en muchas implementaciones mínimas de BASIC de la época, IFlas sentencias solo podían usarse para realizar una bifurcación; THENdebían ir seguidas de un número de línea a la que saltar, no podían contener sentencias arbitrarias como era común en BASIC posteriores. [ 9 ] Por lo tanto IF X=10 THEN 150, era válido, IF X=10 THEN X=X+1no lo era. Una forma alternativa era IF X=10 GO TO 150. El espacio en GO TO no es opcional como lo era en algunos dialectos, ya sea en un IFo como una sentencia independiente. [ 10 ] Las subrutinas eran compatibles usando GOSUB...RETURN, [ 11 ] pero no podían ser llamadas desde IFsentencias. [ a ] ​​Los bucles podían realizarse con IF...THENo usando FOR...TO...STEP...NEXT. [ 10 ]

A diferencia de la mayoría de los BASIC, LETno era opcional y debía usarse en todas las asignaciones. [ 12 ] Los nombres de las variables podían ser una sola letra o una letra y un solo dígito. [ 13 ]DIM se puede usar para definir matrices unidimensionales y bidimensionales. [ 14 ] El formato de número de punto flotante tenía 8 dígitos significativos y exponentes de −38 a +38. [ 15 ] Se usaban símbolos matemáticos estándar para aritmética, +, -, *, /y ^(representado en un Teletype Modelo 33 como una flecha hacia arriba), [ 16 ] e incluía las funciones estándar SIN, COS, TAN, ATN, EXP, LOG, ABS, SQR, INT, RNDy SGN. [ 17 ] No había soporte para variables o funciones de cadena. Las comparaciones booleanas en IFlas sentencias incluían =, <, >, >=, <=y <>. [ 13 ]DEF FN era compatible con funciones definidas por el usuario. [ 18 ]

PRINTAdmitía comas y puntos y comas que podían usarse para espaciar múltiples salidas en formato tabular o sin espacio, respectivamente. [ 19 ]INPUT Admitía y podía leer múltiples entradas en una sola instrucción, pero no admitía indicaciones. [ 20 ] Al carecer de comandos de operación de archivos, cualquier dato dentro de un programa solo podía ingresarse usando DATAinstrucciones y leerse usando READ. [ 21 ]RESTORE devolvía el READal principio de la DATAlista; no había un número de línea opcional como se ve en algunos dialectos. [ 22 ]

REMy completa la lista de comandos STOP. [ 13 ]END

Implementación

A diferencia de la mayoría de los sistemas basados ​​en minicomputadoras de la competencia y las primeras computadoras domésticas , donde BASIC era todo el entorno que veía el usuario, BASIC-8 era uno de los programas que podían ejecutarse en la línea de comandos del sistema operativo subyacente TSS/8 . [ 23 ] Por lo tanto, los comandos que normalmente se asociarían con BASIC, como o , no forman parte del lenguaje propiamente dicho, sino del intérprete de comandos, y por consiguiente no pueden utilizarse dentro de los programas. Esto era típico de muchos entornos BASIC primitivos, donde el editor y el entorno de ejecución eran programas completamente diferentes. [ 24 ]RUNLIST

Los programas BASIC podían introducirse ejecutando BASIC-8 en la línea de comandos y escribiendo, o bien ejecutando un editor de texto como EDIT-8 e introduciendo el código como un archivo de texto. En ambos casos, el código BASIC se almacenaba como texto plano y conservaba los caracteres adicionales que el usuario escribiera; se podía escribir el código sin espacios para que el archivo fuera más compacto [ 7 ] o añadir espacios adicionales para indentar bucles [ 25 ] .

Cuando se iniciaba BASIC, se podía escribir NEWpara borrar cualquier programa existente o OLDpara cargar un archivo existente. En cualquier momento, se podía cambiar SAVEel archivo de trabajo o UNSAVEeliminar un archivo guardado existente. CATALOGproducía una lista de archivos de programa guardados. [ 24 ]LIST imprimía el código fuente y se podía limitar usando dos valores separados por comas para los números de línea de inicio y fin, como LIST 10,200. [ 26 ] [ b ]DELETE eliminaba un rango de líneas del programa, RUNiniciaba la ejecución y BYEsalía de BASIC y volvía a la línea de comandos de TSS/8. [ 27 ]

Internamente, el sistema constaba de cinco subprogramas separados que se cargaban según fuera necesario para minimizar el uso de memoria. Estos eran EDITOR, COMPILER, LOADER, INTERPRETERy ERROR. COMPILER no era un compilador en el sentido moderno de la palabra, ya que no generaba lenguaje de bajo nivel ; en términos modernos se le denominaría "tokenizador" o interfaz. Su propósito era analizar el código fuente BASIC y convertirlo en una serie de "tokens", números de una sola palabra que representaban varias palabras clave y comandos. El resultado se dejaba en memoria mientras se le indicaba a INTERPRETER que comenzara a ejecutar el código tokenizado resultante. ERROR asignaba números de error en BASIC a una salida de texto. Una tabla en memoria, SYPTBA, contenía punteros a las ubicaciones de los programas en el disco. [ 28 ]

Notas

  1. Tampoco se permitió la forma alternativa "GO SUB".
  2. La sintaxis separada por comas fue utilizada por algunos otros dialectos como Atari BASIC , pero la mayoría utilizó la versión de MS BASIC con un signo menos;LIST 10–200.

Referencias

Citas

  1. 1 2 3 4 5 6 7 8 9 10 Ahl 2013 .
  2. 1 2 3 4 Anderson 1984 , pág. 70.
  3. "Hewlett/Packard Computers" . El 2000A fue el primer sistema de tiempo compartido HP 2000 en el mercado alrededor de 1969.
  4. McCracken, Harry (29 de abril de 2014). "Cincuenta años de BASIC, el lenguaje de programación que personalizó las computadoras" . Time .
  5. Manual del sistema educativo (PDF) . DIC. Enero de 1973.
  6. 1 2 3 4 Anderson 1984 , pág. 72.
  7. 1 2 Manual 1969 , pág. 2.2.
  8. "El éxito de taquilla de DEC: La PDP-8" . Museo de Historia de la Computación .
  9. Manual 1969 , pág. 2.15.
  10. 1 2 Manual 1969 , pág. 2.16.
  11. Manual 1969 , pág. 3.6.
  12. Manual 1969 , pág. 2.13.
  13. 1 2 3 Manual 1969 , pág. 2.8.
  14. Manual 1969 , págs. 2.11, 2.17.
  15. Manual 1969 , pág. 2.7.
  16. Manual 1969 , pág. 2.5.
  17. Manual 1969 , pág. 2.6.
  18. Manual 1969 , pág. 3.5.
  19. Manual 1969 , pág. 3.1.
  20. Manual 1969 , pág. 3.7.
  21. Manual 1969 , pág. 2.4.
  22. Manual 1969 , pág. 3.9.
  23. Manual 1969 , pág. 1.1.
  24. 1 2 Manual 1969 , pág. 4.1.
  25. Manual 1969 , pág. 2.12.
  26. Manual 1969 , pág. 4.2.
  27. Manual 1969 , pág. B.1.
  28. Manual 1969 , pág. D.1.

Bibliografía

  • BASIC-8 . DIC. Marzo de 1969.
  • Ahl, David; Ahl, Betsy (3-4 de abril de 2013). "Dave Ahl y Betsy Ahl" (Entrevista). Entrevistados por Kevin Savetz. ANTIC: El podcast de Atari de 8 bits.
  • Anderson, John J. (noviembre de 1984). "Dave le cuenta a Ahl: la historia de la informática creativa" . Informática creativa . págs. 66-74 .