Dartmouth BASIC
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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]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 DTSSBASIC
—modalità BASICNEW
—per iniziare a scrivere un nuovo programmaOLD
—per caricare un programmaLIST
—mostra il programma correnteSAVE
—per salvare un programmaUNSAVE
—per cancellare un programmaCATALOG
—per mostrare i nomi dei programmiSCRATCH
—per cancellare il programma correnteRENAME
—per cambiare il nome al programmaRUN
—per eseguire il programma correnteSTOP
—per interrompere il programma corrente
Lista delle istruzioni BASIC
[modifica | modifica wikitesto]DEF
—definizione di funzioni a singola rigaDIM
—definizione di un arrayEND
—fine dell'esecuzione del programmaSTOP
—interruzione dell'esecuzione del programmaFOR / TO / STEP
—gestione del cicloNEXT
—fine del cicloGOSUB
—salta ad una routineRETURN
—fine della routine e ritorna all'istruzione chiamanteGOTO
—salta ad un numero di rigaIF / THEN
—istruzione di condizioneLET / =
—definizione di funzione matematicaPRINT
—stampa di valoriDATA
—memorizzazione di dati nel programmaREAD
—lettura di dati memorizzati con DATAREM
—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
[modifica | modifica wikitesto]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
[modifica | modifica wikitesto]INT
—InteroABS
—AssolutoSQR
—Radice quadrataSIN
—SenoCOS
—CosenoATN
—ArcotangenteLOG
—LogaritmoEXP
—EsponenzialeRND
—Valore casuale
Bibliografia
[modifica | modifica wikitesto]- 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
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- Codice sorgente per la versione 2 del Dartmouth BASIC, anno 1965 -- https://web.archive.org/web/20070928081111/http://www.dtss.org/scans/BASIC/BASIC%20Compiler.pdf
- Documentazione originale., su dtss.dartmouth.edu.