Il Dartmouth BASIC (noto anche come CardBASIC) è la versione originale del linguaggio BASIC, sviluppato al Dartmouth College. Il linguaggio fu progettato da John Kemeny e da Thomas Kurtz e girava sul Dartmouth Time Sharing System (DTSS). Fu uno dei primi linguaggi di programmazione interattivi.
Era destinato ai sistemi basati sul lettore di carte perforate. La prima versione interattiva fu disponibile nel giugno del 1964, la seconda in ottobre 1964; la terza nel 1966; la quarta 1969; la quinta 1970; la sesta 1971 e la settima nel 1979.
Storia
Il BASIC fu progettato assieme al compilatore e al sistema operativo, così i primi programmi BASIC potevano essere eseguiti nella modalità batch nel 1964. Comunque il 1º maggio del 1964 John Kemeny e John McGeachie eseguirono i primi programmi BASIC dai terminali del sistema DTSS. I programmi consistevano di una singola riga:
PRINT 2 + 2
La seconda versione aveva novità minime, con l'aggiunta del punto e virgola al comando PRINT.
Nella terza versione fu introdotto il comando INPUT e il comando MAT per le operazioni sulle matrici, il comando RESTORE per essere utilizzato con READ/DATA. Lo sviluppo continuò con la gestione del testo e le variabili nella versione 4. La quinta portò la gestione dei file. La sesta versione portò le procedure con i parametri: questa fu la versione dalla quale derivarono quasi tutti i dialetti del BASIC. Nel 1976, Steve Garland aggiunse la programmazione strutturata al Dartmouth SBASIC, un pre-compilatore che produceva programmi BASIC compatibili con la versione 6 (con le quali gettò le basi all'ANSI BASIC). Nel 1979 Kemeny e Kurtz rilasciarono un compilatore ANSI BASIC come la settima e ultima versione del BASIC al Dartmouth, prima di abbandonare il college per concentrarsi sullo sviluppo del ANSI BASIC sotto il nome del True BASIC.
Interfaccia utente
Il DTSS implementava una forma primitiva di ambiente di sviluppo sotto forma di riga di comando. Non c'era modo di uscire da questo ambiente. Se l'utente non rispondeva dopo un certo periodo, il sistema ne forzava l'uscita. Ogni riga che cominciava con un numero di linea era aggiunta al programma, se non c'era il numero il comando inserito veniva eseguito immediatamente.
Lista dei comandi DTSS
Quello che segue è un elenco dei comandi dell'ambiente DTSS che, a differenza di quanto credevano gli studenti, non facevano parte dei comandi del BASIC: essi erano infatti usati anche quando venivano inseriti programmi in altri linguaggi di programmazione, come l'ALGOL o il FORTRAN.
HELLO
—per accedere al DTSS
BASIC
—modalità BASIC
NEW
—per iniziare a scrivere un nuovo programma
OLD
—per caricare un programma
LIST
—mostra il programma corrente
SAVE
—per salvare un programma
UNSAVE
—per cancellare un programma
CATALOG
—per mostrare i nomi dei programmi
SCRATCH
—per cancellare il programma corrente
RENAME
—per cambiare il nome al programma
RUN
—per eseguire il programma corrente
STOP
—per interrompere il programma corrente
Lista delle istruzioni BASIC
DEF
—definizione di funzioni a singola riga
DIM
—definizione di un array
END
—fine dell'esecuzione del programma
STOP
—interruzione dell'esecuzione del programma
FOR / TO / STEP
—gestione del ciclo
NEXT
—fine del ciclo
GOSUB
—salta ad una routine
RETURN
—fine della routine e ritorna all'istruzione chiamante
GOTO
—salta ad un numero di riga
IF / THEN
—istruzione di condizione
LET / =
—definizione di funzione matematica
PRINT
—stampa di valori
DATA
—memorizzazione di dati nel programma
READ
—lettura di dati memorizzati con DATA
REM
—commento
Erano anche implementate l'aritmetica e le variabili in virgola mobile. I nomi delle variabili erano limitati all'uso delle lettere dell'alfabeto, eventualmente abbinate ad una singola cifra: i nomi validi andavano quindi da A a Z, da A0 a A9, da B0 a B9, ecc.. per un massimo di 286 possibili combinazioni. I nomi degli array erano limitati all'uso di una sola lettera (da A a Z): non era necessario definirne la dimensione con DIM ma, in questo caso, la loro dimensione era impostata a 10 di default (l'indice partiva da 1).
Lista di operatori
Operatore aritmetico
|
Operatore logico
|
-
|
Negazione (unario)
|
=
|
Uguale a
|
+
|
Addizione
|
<>
|
Non uguale a
|
-
|
Sottrazione
|
<
|
Inferiore a
|
*
|
Moltiplicazione
|
<=
|
Inferiore o uguale a
|
/
|
Divisione
|
>
|
Maggiore a
|
^
|
Potenza
|
>=
|
Maggiore o uguale a
|
Operatori di raggruppamento
|
|
( )
|
Raggruppamento
|
|
Lista di funzioni
INT
—Intero
ABS
—Assoluto
SQR
—Radice quadrata
SIN
—Seno
COS
—Coseno
ATN
—Arcotangente
LOG
—Logaritmo
EXP
—Esponenziale
RND
—Valore casuale
Bibliografia
- Kemeny, John G. (1985). Back to Basic: The History, Corruption and Future of the Language. Addison-Wesley Longman Inc. ISBN 0201134330.
- BASIC manual. Dartmouth College Computation center, 1964.
Voci correlate
Collegamenti esterni