GW-BASIC

Da Wikipedia, l'enciclopedia libera.
GW-BASIC
GW-BASIC 3.23.png
La finestra di apertura del GW-BASIC
Autore Microsoft
Data di origine 1988
Ultima versione 3.23
Utilizzo
Paradigmi
Tipizzazione
Influenzato da BASIC

Il GW-BASIC (Graphics and Windows Beginner's All-purpose Symbolic Instruction Code[1]) era uno dei dialetti del linguaggio BASIC sviluppato da Microsoft sulla base del BASICA. Fu inizialmente prodotto per la Compaq ed inserito da Microsoft anche nel suo sistema operativo MS-DOS per IBM PC compatibili fino alla versione 5.0, quando fu rimpiazzato dal QBasic.

Il GW-BASIC era compatibile con il BASICA e, come questo, poteva essere lanciato da disco removibile ma, a differenza di esso, non si appoggiava all'interprete BASIC memorizzato nelle ROM dei primi modelli di PC IBM ma veniva caricato completamente in memoria al momento del suo avvio.

Il GW-BASIC era quasi privo delle caratteristiche della programmazione strutturata ma aveva diversi comandi per la gestione della grafica e, parzialmente, anche per la gestione sonora (musica monofonica). Risultò quindi un linguaggio molto versatile, adatto ad imparare i rudimenti della programmazione, e che ben si adattava a produrre ogni genere di applicazione, da semplici giochi a programmi per ufficio ad applicazioni di gestione dei dati su disco [2].

Sintassi[modifica | modifica sorgente]

Il GW-BASIC aveva un Integrated Development Environment (IDE) a riga di comando basato sul Dartmouth BASIC: se l'utente inseriva una riga che iniziava con un numero, questa veniva considerata come una riga di codice da inserire nel programma residente in memoria, altrimenti l'interprete analizzava la sintassi del testo inserito e, se erano presenti istruzioni o comandi validi, li eseguiva immediatamente. L'IDE includeva anche una particolare riga dello schermo (l'ultima in basso) in cui erano riportate le scorciatoie dei comandi assegnati ai tasti funzione. I programmi venivano salvati in formato binario compresso con i comandi sostituiti dai relativi token: c'era comunque la possibilità di salvarli in formato ASCII [3].

Come molte altre versioni del BASIC per microcomputer circolanti all'epoca, anche il GW-BASIC era carente nel supporto per la programmazione strutturata (ad esempio non gestiva le variabili locali) ed era abbastanza lento a causa del fatto di essere un linguaggio interpretato (per ovviare a questo problema Microsoft rilasciò un compilatore denominato BASCOM compatibile con il GW-BASIC, per quelle applicazioni che necessitavano di più velocità).

L'ambiente di sviluppo aveva comandi per visualizzare (LIST), eseguire (RUN), salvare (SAVE) o caricare (LOAD) i programmi ma anche per tornare all'ambiente MS-DOS (SYSTEM). Questi comandi potevano essere eseguiti anche come istruzioni di programma.

Come detto, il supporto alla programmazione strutturata era limitato. Il blocco condizionale IF/THEN/ELSE doveva essere scritto tutto su un'unica riga, mentre il blocco WHILE/WEND poteva distribuirsi su più linee. Le funzioni potevano essere definite solo utilizzando l'istruzione DEF FNnome_func(x) (ad esempio la seguente funzione calcola un logaritmo: DEF FNLOG(base,numero)=LOG(numero)/LOG(base)) ma sempre inserendo tutto il codice in una unica riga.

Il tipo di dati di una variabile era definito ricorrendo ad un carattere speciale inserito alla fine del nome della variabile: ad esempio, il carattere $ identificava le stringhe mentre % identificava un numero di tipo intero. C'era la possibilità di creare dei gruppi di variabili di un determinato tipo di dato utilizzando l'istruzione DEFtipo_dato lettera dove tipo_dato stava per il tipo (ad esempio DEFINT indicava il tipo intero) e lettera una lettera o un gruppo di lettere dell'alfabeto. Tutte le variabile indicate nel programma il cui nome iniziava con la lettera specificata nella definizione erano del tipo di dato indicato. Ad esempio DEFINT A-C indicava che tutte le variabili che iniziavano con A, B o C, erano di tipo intero. Il tipo standard di dati per le variabili non dichiarate era il virgola mobile (o floating point)[4]

Il GW-BASIC permetteva la gestione diretta dei joystick e delle penne ottiche: la gestione dei mouse era invece possibile solo ricorrendo a driver o programmi esterni [5][6]. Tramite GW-BASIC era possibile leggere e scrivere su file o su porte seriali: di queste ultime poteva anche gestire gli eventi. Il GW-BASIC non gestiva le operazioni su nastro perché la porta per il registratore a cassette dei PC IBM originali non fu mai implementata sui computer compatibili.

Il GW-BASIC aveva un supporto base per la musica, essendo in grado di riprodurre semplici note mediante l'istruzione PLAY a cui andava passata una stringa contenente una codifica particolare indicante le note, la loro durata, l'ottava, ecc. (ad esempio, PLAY "edcdeee2dfedc4"). Un controllo più a basso livello era possibile con l'istruzione SOUND che riproduceva un suono di una particolare frequenza e durata tramite l'altoparlante interno del computer. Su alcuni computer (come il Tandy 1000), era possibile gestire fino a 3 canali audio con i comandi SOUND e PLAY.

Significato del nome[modifica | modifica sorgente]

Ci sono diverse teorie circa il significato delle iniziali "GW" presenti nel nome del software. La versione ufficiale indica in esse l'abbreviativo di "Graphics and Windows", ad indicarne le potenzialità grafiche estese rispetto ai precedenti BASIC. Una versione non ufficiale, forse la più accreditata perché confermata dallo stesso interessato, riporta che GW altro non sarebbero che le iniziali di Greg Whitten, un dipendente Microsoft che fu assunto dalla società nel 1979 e che contribuì, fra gli altri progetti, allo sviluppo degli standard del linguaggio BASIC di Microsoft. Un altro significato di GW sarebbe, secondo Whitten, Gee Whiz (traduzione: "diamine", "perbacco") per il grande numero di istruzioni grafiche in 2D contenute nel linguaggio ma anche perché suonava bene per gli OEM del mercato giapponese. Lo stesso Whitten, però, non sa esattamente quale sia il significato di GW perché il nome GW-BASIC fu scelto da Bill Gates in persona: a parer suo, GW potrebbero anche essere le iniziali di Gates e Whitten[7].

Note[modifica | modifica sorgente]

  1. ^ GW-BASIC sul Linux Dictionary
  2. ^ KindlyRat sulla diffusione del GW-BASIC nell'epoca degli home-computer. (archiviato dall'url originale il ).
  3. ^ GW-BASIC Documentation and Utilities
  4. ^ GW-BASIC User's Guide (1987)
  5. ^ Running GW-BASIC under Windows
  6. ^ Mouse into GW-BASIC
  7. ^ Greg Whitten sul GW-BASIC

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]