Fork me on GitHub
con Valerio Galano

Il podcast dove si ragiona da informatici

Un informatico risolve problemi, a volte anche usando il computer

Riflessioni e idee dal mondo del software

Episodio del podcast

Informatica Vintage - Il linguaggio di programmazione Fortran

13 febbraio 2020 Podcast Episodio 27 Stagione 1
Informatica Vintage - Il linguaggio di programmazione Fortran

Descrizione

Fortran è uno dei primi linguaggi di programmazione mai creati. Per questo motivo potrebbe sembrare desueto e anacronistico, ma la realtà è che questo linguaggio è ancora supportato, diffuso e impiegato per applicazioni molto importanti.

Sito ufficiale di Pensieri in Codice - https://pensieriincodice.it

Il testo e le immagini dell’episodio sono disponibili all’indirizzo https://www.sciano.net/post/24/breve-storia-del-linguaggio-di-programmazione-fortran

Attrezzature:
Microfono Blue Yeti* - https://amzn.to/3kSE35f
Filtro anti-pop* - https://amzn.to/3baPMsh
Filtro anti-pop* - https://amzn.to/2MH0Wf1
Schermo fonoassorbente* - https://amzn.to/3sOZE0P

Sostieni il progetto

Sostieni tramite Satispay
Sostieni tramite Revolut
Sostieni tramite PayPal
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader, Satispay

Partner

GrUSP (Codice sconto per tutti gli eventi: community_PIC)
Schrödinger Hat

Crediti

Montaggio - Daniele Galano - https://www.instagram.com/daniele_galano/
Voce intro - Costanza Martina Vitale
Musica - Kubbi - Up In My Jam
Musica - Light-foot - Moldy Lotion
Cover e trascrizione - Francesco Zubani

Mostra testo dell'episodio

Nascondi

Quella che segue è una trascrizione automatica dell'episodio.

Pensieri in codice. Idee dal mondo del software, a cura di Valerio Galano. Buongiorno a tutti e ben ritrovati per un nuovo episodio di Pensieri in codice. Per la serie Informatica Vintage oggi parliamo di un linguaggio che ha fatto la storia della programmazione, il FORTRAN. Prima di iniziare però vi ricordo che, come per tutti gli altri episodi di Informatica Vintage, trovate i testi originali, le immagini riguardanti gli argomenti e molti altri articoli sul blog di Andrea Chanot all’indirizzo chano.net, mi raccomando senza l’accento. Vi lascio quindi tutti i link in descrizione, mi raccomando andate a visitarlo. Vi ricordo che se volete parlare degli argomenti di cui discutiamo nel podcast potete lasciare un commento o unirvi al gruppo Telegram che trovate sempre in descrizione. E iniziamo con l’episodio di oggi. FORTRAN è l’acronimo di FORMULA TRANSLATION oppure FORMULA TRANSLATOR che significa traduzione o traduttore di formule ed è uno dei primi linguaggi di programmazione. Il primo compilatore FORTRAN fu sviluppato a partire dal 1954 per il calcolatore IBM 704 da un gruppo di lavoro guidato da John Bacus. Si trattava di un compilatore ottimizzato poiché i progettisti dell’epoca ritenevano che nessuno avrebbe mai usato un linguaggio di programmazione la cui efficienza non era paragonabile a quella dei linguaggi assembler in voga in quel periodo. Il primo manuale di riferimento per programmatori FORTRAN 1 scritto dallo stesso Bacus è del 1956 mentre il compilatore sopraccitato fu pubblicato nel 1957. Grazie agli innumerevoli programmi applicativi sviluppati nel corso degli anni e alle immense librerie di funzioni richiamabili anche da programmi scritti con altri linguaggi FORTRAN è tuttora un linguaggio utilizzato. Esistono delle sue varianti per supportare il calcolo parallelo, utili alla simulazione di fluidi, interazioni fra particelle, previsioni meteorologiche, ecc. Progettato originariamente come linguaggio procedurale, alcune sue versioni più recenti consentono di utilizzare costrutti derivati dalla programmazione ad oggetti. Veniva 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 velocemente. L’inclusione di un tipo apposito per la rappresentazione dei numeri complessi rese FORTRAN il linguaggio de facto della comunità scientifica. Al giorno d’oggi vengono ancora progettati nuovi compilatori FORTRAN con prestazioni sempre più alte. Non si deve dimenticare infatti che molti progressi nella teoria e nella progettazione di traduttori e compilatori sono proprio derivati dalla necessità di ottenere compilatori FORTRAN in grado di generare codice migliore. Diverse sono le versioni prodotte nel corso del tempo FORTRAN 1 nel 1957 FORTRAN 2 nel 1958 FORTRAN 3 sempre nel 58 usato da una ventina di clienti IBM ma mai pubblicato come prodotto commerciale per la sua mancanza di portabilità FORTRAN 4 nel 61 ad oggi la versione più conosciuta e diffusa FORTRAN 66 nel 1966 FORTRAN 77 nel 77 FORTRAN 90 indovinate un po’ nel 90 FORTRAN 95 2003 e 2008 FORTRAN 2 introdusse la possibilità di avere compilazioni separate FORTRAN 3 la possibilità di usare espressioni booleane o logiche e di inserire codice assembly in line cioè di poter mescolare istruzioni FORTRAN e istruzioni in linguaggio assembler e proprio quest’ultima modifica lo rese non portabile poiché come forse saprete ciascun linguaggio assembler è specifico di un dato calcolatore non essendo altro che la forma simbolica del suo linguaggio macchina le espressioni booleane furono mantenute anche in FORTRAN 4 mentre al tempo stesso vide alla luce un nuovo costrutto condizionale chiamato IF logico in grado di eseguire un test sulla veridicità di un’espressione booleana quest’ultimo si andava ad aggiungere alla già presente istruzione IF aritmetico introdotta in FORTRAN 1 capace di valutare un’espressione numerica prevedendo tre diversi salti a seconda che il suo valore fosse negativo nullo o positivo i primi programmi in FORTRAN erano creati su schede perforate 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 successivi caratteri costituivano un commento le colonne da 7 a 72 contenevano l’istruzione vera e propria la colonna 6, normalmente vuota, se conteneva un carattere qualsiasi, spesso un asterisco, 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 in cui fossero accidentalmente state mescolate nell’articolo di Andrea trovate una bellissima immagine di una scheda perforata dell’IBM System 3 del 1969 con l’avvento del FORTRAN 90, una revisione massiccia del codice sino a quel momento esistente, tutte queste regole stringenti furono abbandonate in favore di codice in formato libero altre notevoli innovazioni introdotte da FORTRAN 90 sono l’allocazione dinamica della memoria, le operazioni sugli array, i tipi di dati astratti, l’overloading degli operatori, i puntatori e i moduli questi ultimi consentono di raggruppare sottoprogrammi e dati correlati il FORTRAN 95, una revisione minore del suo predecessore, ha introdotto essenzialmente la possibilità di effettuare programmazione parallela FORTRAN 2003, anche se il documento che lo definisce è stato pubblicato nel 2004, è un’estensione propria del FORTRAN 95 essa include l’aritmetica in virgola mobile, la gestione delle eccezioni, costrutti per la programmazione orientata agli oggetti e una migliorata interoperabilità con il linguaggio C la pozza finale dello standard FORTRAN 2008 è stata rilasciata il 7 gennaio 2010 ed introduce parecchie novità mentre lo standard formale più recente del linguaggio è il FORTRAN 2018 ed è nuovamente una revisione minore del fratello nato 10 anni prima ma com’è la situazione odierna del FORTRAN? nel 2017 la NASA aveva annunciato una specie di hackathon, lanciando una sfida da risolvere in FORTRAN, per poi annullarlo poco dopo vi era una semplice regola, esiste un risolutore sotto determinate condizioni per le equazioni di Navier-Stokes le quali sono un sistema di equazioni differenziali alle derivate parziali che descrivono il comportamento di un fluido dal punto di vista macroscopico e in sostanza chi fosse riuscito ad eseguirlo in modo più veloce sul supercomputer PLAY ADDESS avrebbe vinto il primo premio dato che FORTRAN non è il linguaggio più popolare all’interno della comunità di programmatori molti credono che sia complesso e obsoleto e la programmazione in FORTRAN è percepita come andare in giro con una carrozza trainata da cavalli in un mondo di automobili tanti pensavano che la competizione non avrebbe mai avuto luogo per mancanza di candidati, mentre avvenne esattamente l’opposto il numero estremamente elevato di candidati, oltre 1800, unito alla difficoltà nel soddisfare i requisiti di controllo per la distribuzione pubblica del software fece fare un passo indietro agli organizzatori FORTRAN non è ovviamente né obsoleto né complesso in realtà questi pregiudizi sono nati perché è stato progettato per rendere più semplice ed efficiente la compressione dei numeri i suoi utilizzatori sono scienziati e ingegneri, non informatici o ingegneri del software così iniziò il mito della complessità la maggior parte del codice che si vede in FORTRAN è davvero complesso, questo perché il problema alla base è complesso ed il codice è stato scritto da specialisti del problema stesso e non da programmatori FORTRAN è sufficientemente semplice per queste figure non informatiche ultra specializzate riguardo il dominio del problema a cui non interessa scrivere del buon codice organizzato ma necessitano comunque di scrivere del codice ed ottenere dei buoni risultati come abbiamo visto nella cronologia delle uscite anche il pregiudizio riguardante la vecchiaia del linguaggio è infondato FORTRAN viene costantemente modernizzato passo dopo passo senza tradire la sua mission e cioè rimanere un linguaggio semplice agli occhi di utilizzatori non informatici tuttavia il FORTRAN moderno contiene moduli, oggetti, tipi generici e supporto integrato al calcolo parallelo nuove funzionalità che lo fanno crescere costantemente per soddisfare le esigenze del mondo attuale per certi versi eccele ancora nella buona vecchia programmazione strutturata a caratteristiche peculiari che mancano persino nei linguaggi mainstream come il C ad esempio si può uscire o continuare un ciclo da un ciclo annidato ma quindi se FORTRAN come abbiamo detto non è complesso né obsoleto come mai è sparito dai nostri radar? la risposta a questa domanda è la stessa che daremmo se dovessimo chiederci dove sono finiti i vecchi programmatori possiamo immaginare che banalmente essi rimangano in attività e poiché il loro numero raddoppia ogni 5 anni sono notevolmente sommersi dall’esercito di persone più giovani che si affaccia su questo mondo d’altro canto c’è anche da considerare che gli utenti di FORTRAN sono scienziati e ingegneri ed il loro numero non cresce esponenzialmente per cui possiamo dedurre che abbiamo più o meno la stessa quantità di utilizzatori vecchi e giovani che esisteva circa 30 o 40 anni fa quando il FORTRAN era al suo apice in un certo senso lasciatemi affermare che FORTRAN è stato al suo apice per tutto questo tempo e se vogliamo usare un’esagerazione è il mondo attorno ad essere impazzito linguaggi che compaiono e spariscono in un batter d’occhio paradigmi che maturano e spariscono l’intera industria del software è molto più simile a quella della moda ma quando si vuole far volare un aereo si devono ancora fare i conti con il fidato FORTRAN questa è la bellezza delle cose che funzionano forse non serve che esse cambino molto grazie a tutti, grazie Andrea e ci sentiamo al prossimo episodio

Nascondi