Qual è il linguaggio di programmazione FORTRAN?

Logo FORTRAN

Il Fortran (acronimo di Formula Translation o Translator ovvero traduzione/traduttore di formule matematiche in algoritmi computazionali), è uno dei primi linguaggi di programmazione, essendo stato sviluppato a partire dal 1954, da un gruppo di lavoro guidato da John Backus. Il primo manuale di riferimento per il programmatore del FORTRAN I, "The FORTRAN automatic coding system for the IBM 704 EDPM", scritto dallo stesso Backus, è del 1956; il compilatore fu pubblicato nel 1957.

Il Fortran è un linguaggio quasi sempre compilato, imperativo, con tipizzazione statica delle variabili, progettato principalmente per il calcolo scientifico e numerico; vi sono state però anche implementazioni con codice interpretato. Un tipo particolare di Fortran compilato è il Fortran FLAG (Fortran Load And Go), sviluppato da Bob Richardson, programmatore presso la Rice University, molto usato negli anni settanta per l'esecuzione di programmi non troppo complessi.

Grazie sia agli innumerevoli programmi applicativi sviluppati nel corso degli anni, sia alle immense librerie di funzioni (richiamabili anche da programmi scritti con altri linguaggi di programmazione), il Fortran è tuttora molto usato.

Di esso esistono varianti per il calcolo parallelo (usate nel calcolo scientifico: simulazione di fluidi, interazioni fra particelle, previsioni meteorologiche, ecc.); inoltre, anche se progettato originariamente come linguaggio procedurale, alcune sue versioni più recenti consentono di usare anche costrutti propri della programmazione orientata agli oggetti.

La storia del Fortran

Il primo compilatore FORTRAN fu sviluppato a partire dal 1954 per il calcolatore IBM 704 da un gruppo di lavoro guidato da John Backus. Si trattava di un compilatore ottimizzante (o ottimizzatore), poiché i progettisti ritenevano che nessuno avrebbe usato un linguaggio la cui efficienza non si avvicinasse a quella dei linguaggi assemblatori.

Il linguaggio fu usato su larga scala soprattutto per scrivere programmi che eseguivano molti calcoli matematici e questo incoraggiò i progettisti a creare compilatori che generavano codice molto veloce. L'inclusione del tipo numero complesso rese poi il Fortran il linguaggio d'elezione nella comunità scientifica. Al giorno d'oggi vengono ancora progettati nuovi compilatori Fortran, con prestazioni sempre più alte. Non si deve dimenticare poi che molti progressi nella teoria e nel progetto dei compilatori sono proprio derivati dalla necessità di ottenere compilatori Fortran in grado di generare un "buon" codice.

Diverse sono le versioni Fortran apparse: il FORTRAN I nel 1957, il FORTRAN II nel 1958, il FORTRAN III nel 1958 (usato da una ventina di clienti dell'IBM, ma mai pubblicato come prodotto commerciale per la sua mancanza di portabilità), il FORTRAN IV nel 1961 (la versione di maggiore uso e diffusione), il FORTRAN 66 nel 1966, il FORTRAN 77 nel 1977, il Fortran 90 nel 1990, il Fortran 95 nel 1995, il Fortran 2003 nel 2003 e il Fortran 2008 nel 2008.

Il FORTRAN II introdusse la possibilità di compilazioni separate, il FORTRAN III la possibilità di usare espressioni booleane (o logiche) e quella di inserire "in linea" codice in linguaggio assemblatore (cioè di mescolare istruzioni Fortran e istruzioni in linguaggio assemblatore). Fu questo a renderlo non portabile, poiché ciascun assemblatore ovviamente è specifico di un dato calcolatore, non essendo altro, in ultima analisi, che una forma simbolica del suo linguaggio macchina. Le espressioni booleane furono introdotte anche nel FORTAN IV, insieme alla nuova istruzione condizionale IF logico in grado di eseguire un test sulla veridicità di un'espressione booleana, che si aggiungeva alla precedente istruzione condizionale IF aritmetico presente nel FORTRAN II (che a sua volta l'aveva ereditata dal FORTRAN I, come si può vedere nel programma d'esempio, riportato sopra, che calcola il massimo di N numeri). Questa valutava invece un'espressione numerica e prevedeva tre diversi salti a seconda che il suo valore fosse negativo, nullo o positivo.

I primi programmi in FORTRAN venivano perforati per lo più su schede a 80 colonne, con regole molto stringenti sul formato della singola istruzione. In particolare: una riga di codice non poteva superare i 72 caratteri, che venivano perforati nelle colonne da 1 a 72, se la colonna 1 conteneva una C i caratteri successivi costituivano un commento, le colonne da 1 a 5 erano riservate ad un'etichetta numerica che identificava l'istruzione e che poteva essere usata per saltare all'istruzione stessa da un altro punto del programma, le colonne da 7 a 72 contenevano l'istruzione vera e propria, la colonna 6 (normalmente vuota) se conteneva un carattere qualsiasi (spesso un *) indicava che l'istruzione era il seguito dell'istruzione perforata nella scheda precedente. D'altra parte, le colonne da 73 a 80 venivano spesso usate per numerare le schede e permettere così di riordinarle nel caso fossero state accidentalmente mescolate.

Con l'avvento del Fortran 90, una revisione "principale" del linguaggio, queste regole stringenti sono state abbandonate in favore del codice in formato libero. Altre notevoli innovazioni introdotte dal Fortran 90 sono l'allocazione dinamica della memoria, le operazioni sugli array, i tipi di dati astratti, l'overloading (o sovraccarico) degli operatori, i puntatori e i moduli (questi ultimi consentono di raggruppare sottoprogrammi e dati correlati).

Il Fortran 95, una revisione "minore" del linguaggio, ha introdotto essenzialmente la possibilità delle programmazione parallela.

Lo standard formale più recente del linguaggio è il Fortran 2003 (anche se il documento che lo definisce è stato pubblicato nel 2004). Si tratta di un'estensione propria del Fortran 95, che include l'aritmetica in virgola mobile IEEE 754, la gestione delle eccezioni, costrutti per la programmazione orientata agli oggetti e una migliorata interoperabilità col linguaggio C.

Caratteristiche

I primi programmi in Fortran, come già detto, dovevano essere scritti con regole molto stringenti (imposte dall'uso delle schede perforate). Inoltre facevano un uso piuttosto pesante di etichette numeriche e dell'istruzione di salto GOTO. Queste "necessità" sono state eliminate dalle versioni più recenti del linguaggio. Sono stati inoltre introdotti concetti "moderni" di programmazione (ad esempio il costrutto IF-THEN-ELSE, a partire dal FORTRAN 77), sempre tuttavia non perdendo di vista gli obiettivi della sinteticità del codice sorgente e dell'efficienza del codice eseguibile. In Fortran sono anche stati scritti molti linguaggi specializzati, fra cui il SAS, per la generazione di report statistici e il SIMSCRIPT, per la simulazione di sistemi a code.

I fabbricanti di calcolatori scientifici ad alte prestazioni (come ad esempio Burroughs, CDC, Cray, Honeywell, IBM, Texas Instruments, UNIVAC) hanno aggiunto al linguaggio estensioni allo scopo di sfruttare particolari caratteristiche delle proprie macchine (come esempio si possono ricordare il FORTRAN VI G, il FORTRAN IV H e il FORTRAN IV H Extended dell'IBM, o il FORTRAN V dell'UNIVAC).

Il destino delle estensioni è di essere abbandonate o di essere incorporate in versioni successive del linguaggio.

Per finire si può ricordare che si sta sviluppando un nuovo linguaggio, il Fortress, che dovrebbe, nelle intenzioni dei progettisti, sostituire il Fortran.

RITORNO

  • 14 Utenti hanno trovato utile questa risposta
Hai trovato utile questa risposta?

Articoli Correlati

Che cosa è un dominio Internet?

A domain name is an identification string that defines a realm of administrative autonomy,...

Che cosa è un social media?

Social media, in italiano media sociali , è un termine generico che indica tecnologie e...

Che cos'è il DNS?

Il sistema dei nomi di dominio (in inglese: Domain Name System, DNS), è un sistema utilizzato...

Qual è la nuvola informatica?

Con il termine inglese cloud computing (in italiano nuvola informatica) si indica un paradigma...

Qual è il protocollo Internet IPv6?

IPv6 è la versione dell'Internet Protocol designata come successore dell'IPv4. Tale protocollo...

Powered by WHMCompleteSolution