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 commercializzarono 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 BASIC Dartmouth College

Collegamenti esterni 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

Categoria:BASIC