Re: Fortran a Fisica!

From: Giorgio Pastore <pastgio_at_univ.trieste.it>
Date: 1999/11/18

Alberto Scagliola wrote:
>
> Da poco ho iniziato lo studio del linguaggio di programmazione Fortran (77 e
> 90). Mi chiedp perch� venga ancora insegnato tale linguaggio nei corsi di
> laurea ion Fisica mentre nei corsi di Ingengeria viene adottato il C++.
>
> Personalmente non so quale sia migliore.....ma, visto che all'ITIS che ho
> frequentato alle superiori ho imoparato elementi di C++ volevo sapere quali
> sono le principali differenze tra i due (a parte il fatto che il Fortran non
> � in brado di disegnare funzioni).
>
> Grazie
>
> P.S: Esistono facolt� di fisica in cui cengono utilizzati altri linguaggi?


La storia del Fortran che non e' capace di disegnare funzioni non l' ho capita.

A parte questo, non credo che il fortran sia ancora l' unico linguaggio
che si insegna a fisica, anche se non ho dati statistici.
Tuttavia posso dirti qual' e' il mio punto di vista sulla questione.

Prima di tutto, escludo che ci possa essere *il linguaggio migliore* in
assoluto. Ogni linguaggio ha pro e contro e soprattutto un settore di
applicazioni per cui e' piu' appropriato.

Il fortran e' stato tra i primi linguaggi di programmazione di alto
livello ad apparire. E' nato per permettere di programmare algoritmi
numerici nel modo piu' vicino possibile alla loro descrizione matematica.

Col tempo sono nati, evoluti, e in alcuni casi scomparsi, molti altri
linguaggi. Il fortran, con varie vicissitudini, e periodiche predizioni
di morte, e' sopravvissuto fino ad oggi nella sua attuale incarnazione
del fortran 90/95. Per lo scopo per cui e' nato direi che ha sempre
raggiunto lo scopo.

Il C++ e' un linguaggio con una notevole flessibilita' che puo'
tranquillamente essere usato come alternativa al fortran per scopi
numerici. Qualche piccola differenza, come l' esistenza di un tipo dati
primitivo COMPLEX in fortran o la possibilita' di indici di arrays
variabili tra estremi qualsiasi o ancora la possibilita' di identificare
la precisione numerica dei tipi float a livello dei nomi delle variabili
per citare alcune, sono dei sintomi della origine formula-oriented del
fortran ma non li considererei dei punti decisivi in favore del fortran.

Molto piu' condizionante, dal punto di vista numerico e' la sterminata
quantita' di software e librerie di ottimo livello scritte in fortran.

Tuttavia la domanda di "quale linguaggio di programmazione insegnare a
fisica" e' estremamente attuale in questo momento in cui i fisici si
stanno accorgendo che il background informatico fornito in media dal
corso di laurea e' in generale scarso.

La risposta e' estremamente complessa e dipende essenzialmente dalla
risposta a due ulteriori domande: quale dovrebbe essere lo scopo dell'
insegnamento di un linguaggio di programmazione e quanto tempo ci si
puo' dedicare.

In un mondo ideale io vedrei abbastanza bene un insegnamento
"poliglotta" in cui lo studente aquisisca bene gli elementi di un
linguaggio ( nel senso che sappia scrivere un programma funzionante in
tale linguaggio) e capisca altri due o tre linguaggi di programmazione
(nel senso che sappia leggere e capire programmi) in un insieme in cui
ritengo debbano entrare il fortran, il c o il c++, java e un linguaggio
di script (shell, perl, tcl...) inoltre dovrebbe saper utilizzare
linguaggi per elaborazioni simboliche di piu' alto livello tipo
Mathematica, Maple, Macsyma etc.
In questo modo potrebbe specializzarsi nel linguaggio piu' vicino alle
sue necessita' (scrivere in fortran un driver per un' interfaccia con
apparati sperimentali o fare fisica computazionale in Java non mi
sembrano cose ragionevoli) salvo avere tutti gli strumenti per poter
utilizzare lo strumento piu' adatto in ogni circostanza del suo
possibile futuro professionale.

Nel nostro mondo reale, questo programma ideale e' di difficile
realizzazione con un tempo per la preparazione di base che si sta
comprimendo sempre piu'. Soprattutto tenendo conto della necessita' di
fornire, oltre ad un linguaggio di programmazione, anche abbastanza
elementi di conoscenze informatiche (e di analisi numerica) per
consentire un utilizzo reale del linguaggio.

Al momento, qui a Trieste, stiamo tentando qualcosa di meno ambizioso in
questa direzione con due moduli di 8 settimane ( al primo ed al terzo
anno) in cui si danno elementi di informatica pratica, cenni di analisi
numerica, un' introduzione al fortran (77) al C e a Mathematica.

Come e quanto questo funzionera', ve lo potro' dire tra un paio di anni...

Aggiungo anche che ritengo che in un mondo ancora piu' ideale alcuni di
questi strumenti ( perche' comunque sono tali) dovrebbero essere gia'
acquisiti prima di entrare all' universita'.

Ciao

Giorgio Pastore
Received on Thu Nov 18 1999 - 00:00:00 CET

This archive was generated by hypermail 2.3.0 : Fri Nov 08 2024 - 05:10:40 CET