(unknown charset) Re: R: Fortran a Fisica!

From: (unknown charset) Luca Fini <lfini_at_arcetri.astro.it>
Date: 1999/11/24

On 22 Nov 1999, Giampaolo Tomassoni wrote:

> Luca Polo <Luca.Polo_at_gest.unipd.it.REMOVE-THIS> wrote in message
> x71z9p2o5q.fsf_at_gest.unipd.it...

> > Hanno campi di applicazione diversi: ciascuno nel suo e' "il
> > migliore";
> > usare il C++ per calcolo numerico e il FORTRAN per le interfacce
> > grafiche e` un assurdo.
>
> Non so quale cervellone te lo abbia detto, ma non sono non � vero: � pure
> sbagliato.

Le affermazioni apodittiche come quella di G.T. sono spesso piu'
sbagliate di quelle che confutano.

> I 'domini applicativi' di FORTRAN, C e C++ (ma persino del Basic...) sono
> perfettamente sovrapponibili. Prova ne � che esistono librerie di analisi
> d'immagini o ricerca operativa in ognuno di questi linguaggi.

In linea di massima i campi applicativi di TUTTI i linguaggi di
programmazione sono perfettamente sovrapponibili; nel senso che alla fine
un qualunque problema puo' essere risolto, piu' o meno, con qualunque
linguaggio di programmazione. Se pero' vai nel dettaglio, allora le
differenze ci sono.
 
> Semmai, per quanto riguarda l'efficienza, il FORTRAN � senz'altro il
> peggiore tra i linguaggi che ho indicato, con il C (seguito da C++) al top
> in fatto di performances: molte delle pi� efficienti librerie di analisi
> d'immagine si basano su routine scritte in C, che vengono rese utilizzabili
> anche da FORTRAN.

Qui mi sembra che si confondano le cose: una cosa e' il linguaggio,
un'altra una particolare implementazione di compilatore. Quindi ci possono
essere compilatori C che producono in media codice piu' efficiente di
compilatori Fortran, ma qui si discute di una caratteristica generale
dipendente dalla struttura del linguaggio.
 
> I motivi che sono fonte delle basse performances del FORTRAN sono da
> ricercare nella pesante gestione dei 'Passing Parameters', nell'uso di
> costrutti un po' troppo lontani dalla macchina per quanto concerne il 'File
> Handling' nonch�, soprattutto, nell'assenza del tipo di dato 'Pointer to' e
> nella pervicacia con cui il FORTRAN si ostina a verificare che gli indici di
> array siano entro i limiti dell'array stesso.

Il FORTRAN ha tradizionalmente un unico modo di passaggio dei parametri
che si presta ad implementazioni assai efficienti (ovvero corrisponde ad
istruzioni "native" di gran parte delle CPU), e non e' diversa dalla
implementazione del passaggio di puntatori che si puo' avere in C.

E' Falso che il linguaggio fortran forzi la verifica degli indici degli
array. Anzi e' vero il contrario: la maggior parte dei compilatori ha una
opzione per avere la verifica che normalmente non viene implementata.

> Come se non bastasse, la grammatica del FORTRAN � non-Regolare, tipica dei
> linguaggi di vecchia generazione come, ad esempio, il COBOL. La ricerca in
> questo settore � stata completamente abbandonata, dato che questo tipo di
> grammatica risulta in compilatori molto complessi e nell'impossibilit� di
> adottare metodi di ottimizzazione che la ricerca stessa ha reso molto
> efficaci (ed una delle risorse di C e C++).

Non credo che la grammatica del linguaggio abbai una grande influenza
sull'ottimizzazione, ma e' comunque vero che la ricerca sui compilatori
FORTRAN e' assai limitata a causa del maggiore successo degli altri
linguaggi.

 [ omissis ]

Saluti,
                                        l.f.
--------------------------------------------------------------------------
       -- ) Luca Fini Tel: +39 055 2752 307
 ___ |\ Osservatorio Astrofisico di Arcetri Fax: +39 055 2752 292
/ | | |-_ L.go E.Fermi, 5 +-----------------------------------------
(___|___//___) 50125 Firenze / WWW: http://www.arcetri.astro.it/~lfini
 (_) (_) Italia / e-mail: lfini_at_arcetri.astro.it
-----------------------------+--------------------------------------------
                              In a world without fences - who needs GATES?
Received on Wed Nov 24 1999 - 00:00:00 CET

This archive was generated by hypermail 2.3.0 : Wed Sep 18 2024 - 05:10:55 CEST