BBC BASIC | ||
---|---|---|
![]() | ||
Desarrollador(es) | ||
Sophie Wilson http://www.bbcbasic.org | ||
Información general | ||
Apareció en | 1981 | |
Diseñado por | Sophie Wilson | |
Última versión estable | 6.15a (Windows)(2 de abril de 2022) | |
Influido por | BASIC,Atom BASIC | |
Sistema operativo | BBC Micro MOS Technology 6502 RISC OS Sinclair ZX Spectrum DOS CP/M Microsoft Windows Mac OS (64-bit, 10.6 o posterior) | |
Licencia | Propietario | |
BBC BASIC es unlenguaje de programación, desarrollado en 1981 como un lenguaje de programación nativo para elAcornBBC Micro, unordenador doméstico conCPUMOS Technology 6502, principalmente porSophie Wilson. Es una adaptación del lenguajeBASIC para el Proyecto de Alfabetización Informática de laBBC en elReino Unido durante los década de 1980.
El BBC BASIC se basa en el viejoAtom BASIC (para elAcorn Atom), ampliado el tradicional BASIC con procedimientos y funciones nombrados, buclesREPEAT-UNTIL
, y estructurasIF-THEN-ELSE
inspiradas enCOMAL. Elintérprete incluía también poderosas sentencias para manejar las cuatro salidas de audio del BBC Micro y su pantalla de alta resolución.
Una de las características únicas del BBC BASIC es la presencia de unensamblador en línea que permite a los usuarios escribir códigoensamblador6502 en sus programas. El ensamblador se integró plenamente en el intérprete BASIC y compartía variables con él. Esto permitió a los desarrolladores escribir, no sólo el código en lenguaje ensamblador, sino combinar código BASIC con ensamblador, por lo que es posible utilizar técnicas de generación de código, e incluso escribir simples compiladores en BASIC.
OPENUP
yOSCLI
, junto con el direccionamiento en ensamblador y correcciones de errores.COLOUR
también puede ser escritoCOLOR
: independientemente de lo que se haya escrito, la versión inglesa lo lista comoCOLOUR
, y la norteamericana comoCOLOR
. El principal lugar en que puede encontrarse BASIC III es en la versión de HI-BASIC para el segundo procesador externo.LIST IF
,EXT#
como una declaración,EDIT
,TIME$
,ON PROC
, | en declaracionesVDU
y operaciones en coma flotante más rápidas. Nuevamente se incluyen correcciones de errores.Otra versión de BBC BASIC, llamada BAS128, se suministra en cinta y disco con los BBC Master y Master Compact; se carga en la memoria RAM principal y usa los 64Kilobytes de la Sideways RAM para programas de usuario. Esto proporcionó soporte a programas mucho más grandes a costa de ser mucho más lento que la versión basada en ROM.
Con el paso a los32 bits de la CPUARM y la eliminación del límite de 16 KB para el código de BASIC permite que se añadan muchas nuevas características.BASIC V versión 1.04 tiene un tamaño de 61 KB.
Algunos de los nuevos comandos y características soportadas son:
WHILE-ENDWHILE
IF-THEN-ELSE-ENDIF
CASE-OF-WHEN-OTHERWISE-ENDCASE
,RETURN
parameters in procedures,LIBRARY
,INSTALL
yOVERLAY
),LOCAL DATA
yLOCAL ERROR
,RESTORE
relativo,STEP TRACE
,Los comandos gráficos eran totalmente compatibles hacia atrás, algo menos el sonido (por ejemplo, la palabra claveENVELOPE
desde BASIC V es un comando que tiene catorce parámetros numéricos y efectivamente no hace nada - como en versiones anteriores, llama a OS_Word 8, pero no hace nada en RISC OS.[1] El ensamblador en línea de 6502 es reemplazado por ensambladorARM. Acorn dijo de BASIC V que sería "sin duda el más rápido BASIC interpretado del mundo" y "probablemente el más poderoso BASIC presente en cualquier equipo".
Y lo demostraron en la práctica. Mientras que los programas demorphing en el resto de plataformas estaban escritos en ensamblador o C, cuando el Risc PC se muestra en elSIMO, corre un programa de este tipo que podía interrumpirse a voluntad para listar el código, sin que se apreciara retraso alguno.
BASIC VI es una versión deBASIC V que soporta el formato de 8 bytes para los números reales (de acuerdo con el estándar IEEE 754) a diferencia de los 5 bytes utilizados desdeBASIC I.
BBC BASIC V y VI se entregaban de serie con losAcorn Archimedes y elRisc PC.
Las versiones actuales deRISC OS todavía incluyen un intérprete de BBC BASIC.
El código fuente de la versión de BBC BASIC para RISC OS 5 ha sido liberado recientemente como 'shared source' porRISC OS Open.
BBC BASIC también ha sido portado a muchas otras plataformas.[2]
Además de la versión de BBC BASIC entregada con el segundo procesadorZilog Z80 para elBBC Micro, existe una versión paraCP/M sobre Z80. Hasta hace poco no existía versión para elSinclair ZX Spectrum, sin embargo gracias al esfuerzo de J.G Harston (también responsable de la versión paraPDP-11),BBC BASIC for the spectrum se lanzó en enero de 2002 con muchas mejoras en las versiones posteriores.
Una versión de BBC BASIC paraZilog Z80 se había utilizado en el ordenador de sobremesaTiki 100 y los notebooksCambridge Z88,Amstrad NC100 yAmstrad NC200. Esta versión se ha implementado en lascalculadoras gráficasTI-83 Plus yTI-84 Plus.
Para losPCs, BBC BASIC se implementó paraDOS comoBBCBASIC (86) (cuyo objetivo era la máxima compatibilidad con el BBC Micro) yBBasic (que se centraba en el lenguaje BASIC, con sus propias mejoras basadas en BASIC II).
Una versión de BBC BASIC integrada con lainterfaz gráfica de usuario deMicrosoft Windows,BBC BASIC for Windows creada porRichard Russell (quien también desarrolló las versiones para Z80 y x86), fue lanzada en 2001. Esta versión está aún en fase de desarrollo activo, debido a que se usa mucho hoy en día. Mientras que soporta casi completamente la especificación original del BBC BASIC (BASIC IV), la versión para Windows soporta muchos de la sintaxis de BASIC V/VI así como algunas características avanzadas propias.
Características exclusivas del BBC BASIC para Windows incluyen soporte del intérprete para tipos record/structure, y la habilidad de pode llamar rutinas delAPI de Windows o las rutinas en unaDLL externa. Recientes versiones han incluido funciones avanzadas comparables con lenguajes comoC.
Un clon de BBC BASIC bajo licenciaGPL llamadoBrandy escrito enC portable también existe.
Un emulador del BBC Micro para elCommodore Amiga fue producido por Ariadna Software paraCBM. A pesar de ser muy rápido, no emula el 6502 a velocidad completa por lo que el ensamblador corre más lento que en un BBC real mientras que los programas BASIC irían mucho más rápidos por desgracia, debido a la forma en que el Basic optimizado y la emulación 6502 interactúan, casi ningún juego comercial se ejecutaría (pero el software educativo generalmente funciona); además utiliza un formato numérico de coma flotante menos optimizado. Durante un tiempo fue incluido con un paquete académico especial delCommodore Amiga 500, con la esperanza de que las escuelas reemplazaran sus envejecidos BBC Micro por Amiga 500.