GW-BÁSICO

Compartir Imprimir Citar
Dialecto del lenguaje de programación BASIC

GW-BASIC es un dialecto del lenguaje de programación BASIC desarrollado por Microsoft a partir de IBM BASICA. Funcionalmente idéntico a BASICA, su intérprete BASIC es un ejecutable completamente autónomo y no necesita la ROM Cassette BASIC que se encuentra en la PC IBM original. Microsoft lo incluyó con los sistemas operativos MS-DOS en PC compatibles con IBM.

El lenguaje es adecuado para juegos simples, programas de negocios y similares. Dado que se incluyó con la mayoría de las versiones de MS-DOS, también fue una forma económica para que muchos aspirantes a programadores aprendieran los fundamentos de la programación informática. Microsoft también vendió un compilador BASIC, BASCOM, compatible con GW-BASIC, para programas que necesitan más velocidad.

Según Mark Jones Lorenzo, dado el alcance del lenguaje, "GW-BASIC podría decirse que es el ne plus ultra de la familia de Microsoft de BASIC con números de línea que se remonta a Altair BASIC - y quizás incluso de BASIC numerado de línea en general."

Con el lanzamiento de MS-DOS 5.0, QBasic ocupó el lugar de GW-BASIC, una versión ligeramente abreviada de la parte del intérprete del paquete de intérprete y compilador QuickBASIC disponible por separado.

El 21 de mayo de 2020, Microsoft lanzó el código fuente del ensamblador 8088 para GW-BASIC 1.0 en GitHub bajo la licencia MIT.

Características

IBM BASICA y GW-BASIC son en gran parte puertos de MBASIC versión 5.x, pero con características adicionales específicamente para el hardware de PC de IBM. Las características comunes de BASIC-80 5.x y BASICA/GW-BASIC incluyen:

La capacidad de "crujir" líneas de programa mediante la omisión de espacios, una característica común de las implementaciones anteriores de Microsoft BASIC, se eliminó de BASIC-80 5.x y BASICA/GWBASIC.

Los programas BASIC-80 que no usan sentencias PEEK/POKE se ejecutan bajo GW-BASIC. BASICA agrega muchas funciones para la PC de IBM, como comandos de sonido, gráficos y memoria. Las características que no están presentes en BASIC-80 incluyen la capacidad de ejecutar la función RND sin parámetros y la capacidad de guardar programas en un entorno "protegido" formato, evitando que sean LISTed. BASICA también permite el uso de números de doble precisión con funciones matemáticas y trigonométricas como COS, SIN y ATN, que era' No se permite en versiones de 8 bits de BASIC. Esta función normalmente no estaba habilitada y requería el parámetro opcional /D al inicio, es decir, GWBASIC /D. La huella de memoria de BASIC aumentó ligeramente si se usaba.

Microsoft no ofreció una versión genérica de MS-DOS hasta la v3.20 en 1986; antes de eso, todas las variantes del sistema operativo eran versiones OEM. Según el OEM, BASIC se distribuyó como BASICA.EXE o GWBASIC.EXE. El primero no debe confundirse con IBM BASICA, que siempre vino como un archivo COM. Algunas variantes de BASIC tienen características adicionales para admitir una máquina en particular. Por ejemplo, las versiones AT&T y Tandy de DOS incluyen un GW-BASIC especial que admite sus capacidades mejoradas de sonido y gráficos.

La versión inicial de GW-BASIC es la que se incluye con Compaq DOS 1.13, lanzada con Compaq Portable en 1983, y era análoga a IBM BASICA 1.10. Utiliza los bloques de control de archivos derivados de CP/M para el acceso al disco y no admite subdirectorios. Las versiones posteriores admiten subdirectorios, gráficos mejorados y otras capacidades.

GW-BASIC 3.20 (1986) agrega compatibilidad con gráficos EGA (ninguna versión de BASICA o GW-BASIC tenía compatibilidad con VGA) y es la última versión importante lanzada antes de que fuera reemplazada por QBasic.

Los compradores de tarjetas gráficas Hercules recibieron una versión especial de GW-BASIC en el disco de utilidades de la tarjeta que se llama HBASIC, que agrega soporte para sus gráficos monocromáticos de 720 × 348. Otras versiones de BASICA/GW-BASIC no admiten gráficos Hercules y solo pueden mostrar gráficos en esa tarjeta mediante el uso de emulación CGA de terceros, como SIMCGA.

GW-BASIC tiene un entorno de desarrollo integrado (IDE) basado en línea de comandos basado en Dartmouth BASIC. Usando las teclas de movimiento del cursor, se puede editar cualquier línea que se muestra en la pantalla. También incluye atajos de teclas de función en la parte inferior de la pantalla. Al igual que otras versiones tempranas de BASIC para microcomputadoras, GW-BASIC carece de muchas de las estructuras necesarias para la programación estructurada, como las variables locales. Los programas GW-BASIC se ejecutaron con relativa lentitud porque era un lenguaje interpretado. Todas las líneas del programa deben estar numeradas; todas las líneas no numeradas se consideran comandos en modo directo para ser ejecutados inmediatamente. Los archivos fuente del programa normalmente se guardan en formato comprimido binario con tokens que reemplazan las palabras clave, con una opción para guardar en forma de texto ASCII.

El entorno de línea de comandos GW-BASIC tiene comandos para EJECUTAR, CARGAR, GUARDAR, LISTA programa actual, o salir al SYSTEM operativo; estos comandos también se pueden usar como declaraciones de programa. Hay poco soporte para la programación estructurada en GW-BASIC. Todas las declaraciones condicionales IF/THEN/ELSE deben escribirse en una línea, aunque WHILE/WEND Las sentencias pueden agrupar varias líneas. Las funciones solo se pueden definir usando la declaración de línea única DEF FNf(x)=<función matemática de x> (por ejemplo, DEF FNLOG(base,número)=LOG(número)/LOG(base)). El tipo de datos de las variables se puede especificar con un carácter al final del nombre de la variable: A$ es una cadena de caracteres, A% es un número entero, etc. de variables también se pueden establecer en tipos predeterminados en función de la letra inicial de su nombre mediante el uso de las declaraciones DEFINT, DEFSTR, etc. El tipo predeterminado para las variables no declaradas no identificadas por tales instrucciones de escritura es punto flotante de precisión simple (MBF de 32 bits).

GW-BASIC permite el uso de dispositivos de entrada de joystick y lápiz óptico. GW-BASIC puede leer y escribir en archivos y puertos COM; también puede hacer captura de eventos para puertos. Dado que la interfaz del puerto de cinta de casete de la PC IBM original nunca se implementó en compatibles, las operaciones de casete no son compatibles. GW-BASIC puede reproducir música simple utilizando la instrucción PLAY, que necesita una cadena de notas representadas en un lenguaje de macros de música, por ejemplo, PLAY "edcdeeL2edfedL4c". Es posible un mayor control de bajo nivel con la instrucción SOUND, que toma los argumentos de una frecuencia en hercios y una duración en tics de reloj para el altavoz de PC interno estándar en las máquinas IBM. En consecuencia, el sonido se limita a pitidos y silbidos de un solo canal, como corresponde a un "negocio" máquina. Los PC domésticos como el Tandy 1000 permiten hasta tres canales de sonido para los comandos SOUND y PLAY.

Nombre

Existen varias teorías sobre lo que significan las iniciales "GW" representar. Greg Whitten, uno de los primeros empleados de Microsoft que desarrolló los estándares en la línea de compiladores BASIC de la compañía, dice que Bill Gates eligió el nombre GW-BASIC. Whitten se refiere a él como Gee-Whiz BASIC y no está seguro de si Gates nombró al programa en su honor. El Manual de usuario de Microsoft de Microsoft Press también se refiere a él con este nombre. También puede haber sido apodado Gee-Whiz debido a sus numerosos comandos gráficos. Otras teorías comunes en cuanto a las iniciales' sus orígenes incluyen "Gráficos y Windows", "Gates, William" (el presidente de Microsoft en ese momento), o "Gates–Whitten" (los dos diseñadores principales del programa).