INTERPRETE FOCAL per MS-DOS
FOCAL INTERPRETER for MS-DOS |
FOCAL (acronimo per Formulating On-Line Calculations in Algebraic Language) è il nome di un linguaggio di tipo conversazionale sviluppato dalla Digital Equipment Corporation (DEC) a partire dal 1969 per la linea dei propri minicomputer PDP-8 in alternativa al Basic Dartmouth. Si sono poi avute ulteriori versioni, ad esempio il FOCAL71 o UW-FOCAL, per i modelli successivi della serie PDP (11 & 15) ed anche versioni per le prime schede a microprocessore degli anni 70 (un esempio per tutti il FOCAL per la scheda KIM-1 basata sul microprocessore 6502). Caratteristiche essenziali del linguaggio erano l'estrema semplicità: numeri di riga come il Basic ma raccolte in gruppo (ad es. 10.20) , comandi composti da una sola lettera (a per ask, t per type, c per comment ecc..), variabili solo numeriche ed array dimensionati automaticamente in funzione della memoria disponibile. Le caratteristiche della prima
versione, nota come FOCAL69, sono state raccolte dalla DEC in un
libretto (una specie di tutorial) qui
Mi sono imbattuto nel FOCAL per i miei studi di storia dell'informatica (e precisamente sul Dartmouth Basic del PDP-10) e ho guardato per vedere se ne era mai stata realizzata una versione per MS-DOS: il risultato non è stato incoraggiante perché ho solo trovato una versione scritta in C (FOCAL-81, non completa anche se funzionante) realizzata nel 1981 da Dave Conroy e modificata nel 1995 da Akira Kida. La versione originale era concepita per funzionare sotto vari Sistemi Operativi (Solaris, HP-UX e MS-DOS) e questa è stata la base di partenza per ottenere la versione che qui presento. Ho così rispolverato il C che avevo studiato all'Università e che, successivamente, avevo avuto scarse possibilità di usare; come compilatore ho scelto in Quick C 2.0 Microsoft perché dotato di un ambiente di sviluppo molto interattivo e praticamente identico a quello del Quick Basic. Dopo uno studio del FOCAL69, FOCAL71 e UW-FOCAL, il primo passo è stato quello di capire il sorgente originale (che era diviso in quattro parti), ho completato poi i comandi mancanti adattandoli anche all'MS-DOS: tutte le note di installazione e di sviluppo nonché un piccolo manuale del linguaggio è raccolto nel file FOCAL.TXT. Contrariamente al solito il tutto è stato trascritto in inglese e sono compresi ANCHE i sorgenti, per rispetto all'opera degli autori originali. La versione che si può scaricare è la 2.2 che comprende anche dei comandi di grafica (640x200 e 640x480 monocromatica): ricordo anche nel FOCAL69 del PDP-8 c'era la possibilità di avere output grafici sullo schermo di un oscilloscopio (!!) Un esempio di programma FOCAL (primes.foc) è il seguente: 10.01
ask "Number",size che stampa un elenco di numeri primi da 1 a size (impostato dall'utente con l'istruzione ASK della linea 10.01) Un altro esempio di programma con output grafico è il seguente (sine.foc): 01.10 c sine
graphic in 640x200
N.B. Nella cartella X86 c'è la versione originale dell'interprete di Conroy e Kida. |
FOCAL 2.2 is a 16 bit program and all messages and
documentation are in English.
Download: FOCAL 2.2 Interpeter for MS-DOS
|