Microsoft BASIC es el producto de software base de la empresa Microsoft y evolucionó hasta convertirse en una línea de intérpretes y compiladores BASIC adaptados a muchos microordenadores diferentes . Apareció por primera vez en 1975 como Altair BASIC , que fue la primera versión de BASIC publicada por Microsoft, así como el primer lenguaje de programación de alto nivel disponible para el microordenador Altair 8800 .
Durante la locura de los ordenadores domésticos de finales de los años 1970 y principios de los años 1980, BASIC se adaptó a muchos diseños de ordenadores domésticos y se incluyó en ellos. Las ligeras variaciones para añadir compatibilidad con funciones específicas de la máquina, especialmente gráficos, dieron lugar a una profusión de diseños relacionados, como Commodore BASIC y Atari Microsoft BASIC .
A medida que las primeras computadoras hogareñas dieron paso a diseños más nuevos, como la IBM Personal Computer y la Macintosh , BASIC dejó de usarse tan ampliamente, aunque mantuvo un gran número de seguidores. El lanzamiento de Visual Basic revitalizó su popularidad y sigue usándose ampliamente en las plataformas Microsoft Windows en su versión más reciente, Visual Basic .NET .
El intérprete BASIC de Altair fue desarrollado por los fundadores de Microsoft, Paul Allen y Bill Gates, utilizando un emulador Intel 8080 escrito por ellos mismos que se ejecutaba en una minicomputadora PDP-10 . [1] El dialecto MS está basado en el BASIC-PLUS de Digital Equipment Corporation en la PDP-11 , que Gates había utilizado en la escuela secundaria . [2] Las primeras versiones solo admitían matemáticas de números enteros, pero Monte Davidoff los convenció de que era posible la aritmética de punto flotante y escribió una biblioteca que se convirtió en el formato binario de Microsoft .
Altair BASIC se entregaba en cinta de papel y en su versión original ocupaba 4 KB de memoria. Estaban disponibles las siguientes funciones y sentencias:
LIST
, NEW
, PRINT
, INPUT
, IF...THEN
, FOR...NEXT
, SQR
, RND
, SIN
, , , , , , , , , LET
, , , , , , , y .USR
DATA
READ
REM
CLEAR
STOP
TAB
RESTORE
ABS
END
INT
RETURN
STEP
GOTO
GOSUB
En el BASIC 4K no había variables de cadena y el único tipo numérico admitido era el de punto flotante de 32 bits de precisión simple. Los nombres de las variables consistían en una letra (A–Z) o una letra seguida de un dígito (0–9), lo que permitía hasta 286 variables numéricas.
Para las máquinas con más memoria, la versión de 8 KB agregó 31 declaraciones adicionales y soporte para variables de cadena y sus operaciones relacionadas como MID$ y concatenación de cadenas . Las variables de cadena se denotaban con un sufijo $, que permaneció en versiones posteriores del lenguaje. Más tarde, Microsoft lanzó el BASIC extendido de 12K, que incluía variables de 64 bits de doble precisión, IF
... THEN
... ELSE
estructuras, funciones definidas por el usuario, comandos de edición de programas más avanzados y mensajes de error descriptivos en lugar de números de error. Las variables numéricas ahora tenían tres tipos básicos, % denotaba números enteros de 16 bits, # denotaba dobles de 64 bits y ! denotaba simples de 32 bits, pero este era el formato predeterminado, por lo que el ! rara vez se ve en los programas.
La versión extendida de 8 KB se generalizó luego en BASIC-80 (8080/85, Z80 ), y se adaptó a BASIC-68 ( 6800 ), BASIC-69 ( 6809 ) y 6502 -BASIC. El 6502 tenía un código ensamblador algo menos denso y se expandió en tamaño a poco menos de 8K para la versión de precisión simple, o 9K para una versión que usaba un formato de punto flotante intermedio de 40 bits en lugar de la versión original de 32 bits. Este nuevo formato de 40 bits se convirtió en el más común, ya que se usó en la mayoría de las máquinas basadas en 6502 de la época. También se adaptó al BASIC-86 de 16 bits ( 8086/88 ).
La última versión importante de BASIC-80 fue la 5.x, que apareció en 1981 y agregó compatibilidad con nombres de variables de 40 caracteres, WHILE
bucles WEND
, asignación dinámica de cadenas y varias otras funciones. BASIC 5.x eliminó la capacidad de procesar líneas de programa.
El conjunto de comandos principales y la sintaxis son los mismos en todas las implementaciones de Microsoft BASIC y, en términos generales, un programa puede ejecutarse en cualquier versión si no utiliza características específicas del hardware o números de doble precisión (no admitidos en algunas implementaciones).
Tras el éxito inicial de Altair BASIC, Microsoft BASIC se convirtió en la base de un lucrativo negocio de licencias de software, que fue adaptado a la mayoría de los numerosos ordenadores domésticos y personales de los años 70 y, especialmente, de los 80, y se fue ampliando a lo largo del camino. A diferencia del Altair BASIC original, la mayoría de los BASIC de ordenadores domésticos residen en la memoria ROM y, por tanto, están disponibles en los equipos al encenderlos en forma del característico mensaje " " . Por tanto, las variantes de Microsoft y otras de BASIC constituyen una parte significativa y visible de la interfaz de usuario de los sistemas operativos rudimentarios de muchos ordenadores domésticos .READY
En 1981, Microsoft BASIC era tan popular que incluso las empresas que ya tenían un BASIC licenciaron el lenguaje, como IBM para su computadora personal , [3] y Atari , que vendió tanto Atari Microsoft BASIC como su propio Atari BASIC . [4] Don Estridge de IBM dijo: "Microsoft BASIC tenía cientos de miles de usuarios en todo el mundo. ¿Cómo vas a discutir eso?" [3] Microsoft licenció versiones similares a empresas que competían entre sí. Después de licenciar IBM Advanced BASIC (BASICA) a IBM, por ejemplo, Microsoft licenció el GW-BASIC compatible a los fabricantes de clones de PC y vendió copias a clientes minoristas. [5] La empresa licenció de manera similar un BASIC compatible con Applesoft a VTech para su clon Laser 128. [6]
Variantes conocidas:
MBASIC está disponible para CP/M-80 e ISIS-II . También disponible para TEKDOS .
MBASIC es una versión simplificada de BASIC-80 con funciones independientes del hardware. Sin embargo, debido a la popularidad de CP/M, la gran mayoría de las máquinas Z80 ejecutaban MBASIC, en lugar de una versión personalizada para hardware específico (TRS-80 BASIC fue una de las pocas excepciones). La tarjeta CP/M de Microsoft para Apple II incluía una versión modificada de MBASIC que incorporaba algunos de los comandos gráficos de Applesoft BASIC, como HPLOT
, pero no se admite el conjunto completo de comandos.
La primera implementación que utilizó una variante de 8 bits de la Tabla de asignación de archivos (FAT) fue una adaptación de BASIC [nb 1] para una terminal de ingreso de datos NCR 7200 , [nb 1] 7520 , [nb 1] o 7530 [nb 1] basada en Intel 8080 con disquetes de 8 pulgadas en 1977/1978.
Microsoft ofreció un compilador BASIC para BASIC-80 bajo CP/M, en 1980 o antes. El ejecutable del compilador se llamaba BASCOM o BASCOM32. [8]
El ordenador TRS-80 se ofreció inicialmente con una adaptación del Tiny BASIC de Li-Chen Wang ( Basic de nivel I ); en pocos meses, este fue reemplazado por una versión del BASIC-80 que incorporaba algunos de los comandos del BASIC de nivel I, en particular los comandos para configurar caracteres gráficos. El BASIC de nivel II contenía algunas de las características del BASIC extendido, aunque debido a la necesidad de incluir comandos de nivel I como SET
y PSET
, otras características como los mensajes de error descriptivos aún tuvieron que dejarse de lado; estos se agregaron posteriormente al TRS-80 Disk BASIC.
El modelo 4 de la TRS-80 tenía un BASIC basado en disco más nuevo que utilizaba el núcleo BASIC-80 5.x, que incluía soporte para nombres de variables de 40 caracteres. Por lo tanto, la capacidad de procesar líneas de programa (sin espacios entre palabras clave y argumentos) ya no era posible como lo había sido en el Nivel II. Ya no era necesario reservar espacio para cadenas. Las nuevas características incluían funciones definidas por el usuario ( DEF FN
) y acceso a funciones del sistema TRSDOS 6 mediante una SYSTEM
palabra clave. Una versión modificada publicada más tarde por el proveedor de SO Logical Systems, en la actualización LS-DOS Versión 6.3, agregó acceso de una sola letra a funciones de control BASIC (como LIST
y EDIT
) y acceso directo a llamadas de supervisor de LS-DOS. El entorno de edición de programas todavía estaba orientado a líneas. La función disponible en el Nivel II para ordenar matrices ( CMD"O"
) no estaba disponible; los programadores y usuarios tuvieron que idear sus propias soluciones alternativas.
La primera implementación como sistema de lenguaje independiente basado en disco fue para la tarjeta CPU S-100 bus 8086 de Seattle Computer Products en 1979. Utilizaba un sistema de archivos FAT de 8 bits .
Microsoft también ofreció una versión de Standalone BASIC-86 para SBC-86/12 para la plataforma de computadora de placa única 8086 de Intel en 1980.
Esta es la versión de BASIC utilizada en la computadora hogareña TI-99/4A . Aunque es muy similar a Microsoft BASIC, no fue escrita por Microsoft como se rumoreaba ampliamente. Según el ingeniero de TI H. Schuurman, "ellos (en la forma de Bob Greenberg de Microsoft) fueron contratados para desarrollar BASIC para el SR-70 (que también se conoce a veces como 99/7), pero el BASIC para el 99/4 fue desarrollado internamente". El BASIC TI-99/4 se basó en Dartmouth BASIC y cumple con el Estándar Nacional Americano para BASIC mínimo (ANSI X3.60-1978).
Microsoft portó BASIC-80 al 6502 durante el verano de 1976; fue principalmente un puerto directo de la versión 8K de BASIC-80 e incluyó los mismos mensajes que preguntaban por el tamaño de la memoria y si el usuario quería funciones de punto flotante habilitadas o no (tenerlas activas usaba 135 bytes adicionales de memoria). Las primeras máquinas en usar BASIC 6502 fueron Ohio Scientific Model 500 y KIM-1 en 1977. [9] 6502 BASIC incluía ciertas características de Extended BASIC como funciones definidas por el usuario y mensajes de error descriptivos, pero omitió otras características como variables de doble precisión y la PRINT
USING
declaración. Como compensación por no tener variables de doble precisión, Microsoft incluyó soporte de punto flotante de 40 bits en lugar del punto flotante de 32 bits de BASIC-80 y la asignación de cadenas era dinámica (por lo tanto, el usuario no tenía que reservar espacio de cadena como en BASIC-80). Sin embargo, los proveedores aún podían solicitar BASIC con punto flotante de 32 bits para una huella de memoria ligeramente menor ; Por ejemplo, Disk BASIC para Atari de 8 bits utilizaba un sistema de punto flotante de 32 bits en lugar de 40 bits. [ cita requerida ]
Las características estándar de la versión 9K de Microsoft 6502 BASIC incluían:
GET
Declaración para detectar una pulsación de tecla.El BASIC 6502 carecía de un conjunto estandarizado de comandos para salida de disco e impresora; el proveedor debía agregarlos y variaban ampliamente con cada implementación.
Las implementaciones posteriores de 6502 Basic (1983–) tuvieron muchas mejoras específicas del proveedor; por ejemplo, las versiones posteriores de Commodore BASIC tenían lo siguiente:
DIRECTORY
, DSAVE
, DLOAD
, BACKUP
, HEADER
, SCRATCH
, COLLECT
, DVERIFY
, COPY
, DELETE
, RENAME
, etc.)CIRCLE
, DRAW
, BOX
, COLOR
(de fondo, borde, etc.), PAINT
, SCALE
)SSHAPE
y GSHAPE
con OR
, AND
, XOR
, etc.)VOL
, SOUND
), más adelante en C=128 Comandos de música (programación de filtros ADSR y SID ( ENVELOPE
y FILTER
), PLAY
comandos , TEMPO
)IF
– THEN
– ELSE
, DO
– LOOP
– WHILE
/ UNTIL
– EXIT
.JOY
, teclas de funciónSTOP
, CONT
, TRON
, TROFF
,RESUME
WINDOW
RENUMBER
, NEW
, MONITOR
,RREG
Los catálogos de Microsoft de la década de 1980 también mostraban la disponibilidad de BASIC-68 y BASIC-69 para los microprocesadores Motorola 6800 y 6809 respectivamente, que ejecutaban los sistemas operativos FLEX , y también mencionaban versiones OEM para sistemas Perkin-Elmer , Ohio Nuclear , Pertec y Societe Occitane d'Electronique. [10] Parece probable que esto sea también la base del BASIC de Microsoft/Epson en la computadora portátil Epson HX-20 , que tiene dos CPU Hitachi 6301, que son esencialmente un 6801 "trucado". La mayoría de las características principales de BASIC-68 y BASIC-69 se copiaron directamente de BASIC-80. [ ¿ investigación original? ]
BASIC-69 también fue licenciado a Tandy, donde formó el núcleo de Color BASIC en la computadora de color TRS-80 . [ cita requerida ] No debe confundirse con BASIC09 , un BASIC muy diferente creado por Microware como el lenguaje principal para su OS-9 , el otro sistema operativo disponible en la computadora de color (Microware también escribió la versión 2.0 de Extended Color BASIC cuando Microsoft se negó a hacerlo). Microsoft BASIC también se incluyó en las computadoras Dragon 32 / 64 que se construyeron en Gales y disfrutaron de un éxito limitado en el mercado de computadoras domésticas del Reino Unido a principios de la década de 1980. Las computadoras Dragon eran algo compatibles con la Tandy TRS-80, ya que estaban construidas en hardware muy similar.
Microsoft produjo un MSX BASIC basado en ROM para su uso en ordenadores domésticos MSX , que utilizaban un procesador Z80. Esta versión admitía los sistemas de gráficos y sonido de los ordenadores MSX; algunas variantes también admitían unidades de disco.
Actualmente no se distribuye ninguna versión de Microsoft BASIC ( BASICA , GW-BASIC , QuickBasic , QBasic ) con Microsoft Windows o DOS . Sin embargo, se pueden descargar versiones que aún funcionan en máquinas modernas desde varios sitios de Internet o se pueden encontrar en discos DOS antiguos.
La última encarnación de Microsoft BASIC es Visual Basic .NET , que incorpora algunas características de C++ y C# y se puede utilizar para desarrollar formularios web, formularios de Windows, aplicaciones de consola y aplicaciones basadas en servidor. La mayoría de los ejemplos de código .NET se presentan en VB.NET y en C#, y VB.NET sigue siendo el preferido por los antiguos programadores de Visual Basic .
En octubre de 2008, Microsoft lanzó Small Basic . [11] El lenguaje tiene solo 14 palabras clave. [12] La versión 1.0 de Small Basic (12 de junio de 2011) [13] se lanzó con un sitio web Microsoft MSDN actualizado que incluía un plan de estudios completo para docentes, [14] una Guía de inicio rápido [15] y varios libros electrónicos. [16] Small Basic existe para ayudar a estudiantes de tan solo ocho años [17] a aprender los fundamentos de la programación informática y luego graduarse a Visual Basic a través del software descargable, Visual Studio Express , donde pueden continuar desarrollando la base aprendiendo Visual C# , VB.NET y Visual C++ . [18]