# Microsoft BASIC

Microsoft BASIC fue el primer producto de la compañía Microsoft. Su primera aparición fue en 1975 como Altair BASIC, que fue el primer BASIC (y de hecho el primer lenguaje de programación de alto nivel) disponible para el microcomputador MITS Altair 8800
El intérprete Altair BASIC fue desarrollado por los fundadores de Microsoft Paul Allen y Bill Gates con la ayuda de Monte Davidoff, usando un software simulador de Intel 8080 hecho por ellos mismos ejecutándose en un minicomputador PDP-10. El lenguaje BASIC era similar a los intérpretes de Digital Equipment Corporation, especialmente en las operaciones con cadenas, que variaron entre las distintas implementaciones de BASIC. BASIC usaba cadenas asignadas dinámicamente que almacenaban su tamaño, una característica no usada en C o C++ hasta la aparición de la Standard Template Library en los 90. Muchas de estas operaciones de cadenas se mantienen actualmente en el .NET Framework. Las primeras versiones de BASIC sólo soportaban nombres de una letra o dígitos, pero Microsoft BASIC permitía el uso de nombres de variable largos. Sin embargo, la tabla de símbolos en tiempo de ejecución usaba una búsqueda lineal, por lo que un programa que usara varias variables distintas se ejecutaba mucho más despacio que otro programa que usara una única matriz para todas sus variables.
Fue distribuido en cinta perforada y en su versión original ocupaba 4 KiB de memoria. La versión extendida de 8 KiB fue generalizada en BASIC-80 (8080/85, Z80), y portada en BASIC-68 (6800), BASIC-69 (6809), y MOS Technology 6502-BASIC (desafortunadamente ocupando sobre 9 KiB, en una era en la que los chips ROM de 8 KiB eran los estándar), además del BASIC-86 (8086/88) de 16-bits. Era ideal para ordenadores basados en ROM ya que no requiere un editor (cada línea tiene que llevar un número), ni una unidad de disco para almacenar código objeto o ejecutables. Era menos sofisticado que los ordenadores industriales, como el HP 9830, que tenía teclas dedicadas para cargar, almacenar y teclas para editar dentro de una línea y depurar, pero los ordenadores personales, en cambio, no costaban 7000 dólares.
Después del éxito inicial del Altair BASIC, Microsoft BASIC se convirtió en la base de un lucrativo negocio de licencias de software, siendo portado a la mayoría de los numerosos ordenadores domésticos y personales de la década de los 70 y especialmente de los 80, y extendiéndose más allá. Al contrario que el Altair BASIC original, la mayoría de los BASIC de ordenadores personales estaban residentes en una ROM, y por eso estaba disponible en las máquinas tan pronto se encendían con la forma del característico prompt "READY.". Por lo tanto, el Microsoft BASIC y otras variantes de BASIC constituían una parte significativa y visible de los rudimentarios sistemas operativos de muchos de los ordenadores domésticos.
Microsoft BASIC (BASICA.EXE, GWBASIC.EXE, QBASIC.EXE) ya no se encuentra en las distribuciones de Windows o DOS, sin embargo, se puede descargar de varios servidores de Internet, y archivos de versiones de DOS o viejos discos de DOS que aún funcionan en máquinas tipo Pentium. La última versión de BASIC es VB.NET que incorpora la mayoría de las características de C++ y C# y puede ser usado para desarrollar formularios web, formularios windows, y aplicaciones basadas en servidor. La mayoría de los ejemplos de código de .NET se presentan en VB.NET al mismo tiempo que C#, y VB.NET continúa siendo el favorito de los programadores de Visual Basic.

## Variantes y derivados de Microsoft BASIC
### Para ordenadores de 8 bits

* Altair BASIC (MITS Altair 8800 y otros ordenadores S-100)
* Applesoft BASIC (familia Apple II)
* Atari Microsoft BASIC I y II (familia Atari de 8 bits)
* Color BASIC (TRS-80 Color Computer)
* Commodore BASIC (familia de 8-bit de Commodore: PET, VIC 20, C64, etc)
* Extended Color BASIC (TRS-80 Ordenador en color y Dragon 32/64)
* Microsoft Level III BASIC (Tandy/Radio-Shack TRS-80)
* MBASIC (CP/M, en ordenadores basados en 8080/85 y Z80)
* MSX BASIC (Estándar para ordenadores domésticos MSX)
* N88-BASIC (NEC PC8801/9801)
* Galaksija BASIC (Ordenador doméstico Galaksija)
* TRS-80 Level II BASIC (Tandy/Radio-Shack TRS-80)
* HP2640 HP2647 Terminal programable con extensiones gráficas AGL

### Para ordenadores de 16 y 32 bits

* Amiga BASIC (familia Commodore Amiga)
* BASICA ("BASIC Avanzado") (PC-DOS, en el IBM PC)
* IBM BASIC (PC-DOS, en el original IBM PC)
* GW-BASIC (BASICA para MS-DOS, en compatibles PC)
* QBasic (PC-DOS/MS-DOS en IBM PC y compatibles)
* QuickBASIC (PC-DOS/MS-DOS en IBM PC y compatibles))
* MS BASIC para Macintosh (Mac OS en Apple Macintosh)
* Visual Basic (PC-DOS/MS-DOS/MS Windows en IBM PC y compatibles)
* WordBasic (pre-VBA) (MS Windows)

### Otros (de terceros)

* FreeBASIC - Un compilador libre del lenguaje BASIC (Windows - Linux - DOS)
* QB64 - Un compilador libre del lenguaje BASIC (Windows - Linux)