Fortran 95 und vorallem Fortran 2003 sind sehr moderne Sprachen in dem viele Dinge vordefiniert sind.
Beispiele:
eine Matrix A, beliebiger Größe nullen: A = 0 in C müßte man mit 3 Schleifen arbeiten
Matrizenmultiplikation: MATMUL(A,B) Matrix A mit Zeilenrang m, Matrix B mit Spaltenrang n in C sind wieder 3 Schleifen notwendig
Man darf sich nicht mehr vom alten F77-Stil abschrecken lassen, das ist schon lang vorbei. ;-) Der wird nur noch aus Kompatibilitätsgründen mitgeschleift, die Programmierer sind angehalten F77 mindestens in F95 umzuschreiben. Tools die dies unterstützen gibt es auch.
in C liesse sich der Speicherbereich von beliebig dimensionalen double-Feldern leicht mit:
double a[x][y][z]; memset(&a, 0, sizeof(double) * x * y * z);
ohne 3 Schleifen auf null setzen
Freilich ist das nur ein 'Hack' ... allerdings sollte man Fortran95 bzw. Fortran2003 sinnvollerweise mit 'Gleichaltrigen' vergleichen ... z.B. C++, Objective C, D, (Compilierbares) Python (-> schaut Euch mal SAGE an), (High Performance) Java und wenn es was von Microsoft sein muss, dann halt Dot-Net 4.0+
C ist gerade mal ein paar Jahre juenger als Fotran66 ... und fuer eine System-nahe Programmiersprache haben die Sprach-Designer von C die objektorientierte Array-Verarbeitung wohl zu recht als erlaesslich erachtet ;-))
Ich habe C nicht die Daseinsberechtigung abgesprochen!
Mit Fortran macht man mathematische Berechnungen, es gibt nur in Fortran 2003 die intrinsischen IEEE-Module. Sowas fehlt in allen anderen Hochsprachen. Sowas musste man einbauen weil die Hardwarehersteller zu blöd sind mal auf ein paar numerische Mathematiker zu hören.
BTW, wikibooks hilft
In Fortran stecken 30 Jahre Erfahrung, das gibt man nicht auf!
Was High Performance Java betrifft, es gibt schöne Ideen auf math.nist.gov, es schlägt nur nicht in Standard-Java ein, also macht man Fortran.
in C liesse sich der Speicherbereich von beliebig dimensionalen double-Feldern leicht mit:
double a[x][y][z]; memset(&a, 0, sizeof(double) * x * y * z);
ohne 3 Schleifen auf null setzen
Freilich ist das nur ein 'Hack' ... allerdings sollte man Fortran95 bzw. Fortran2003 sinnvollerweise mit 'Gleichaltrigen' vergleichen ... z.B. C++, Objective C, D, (Compilierbares) Python (-> schaut Euch mal SAGE an), (High Performance) Java und wenn es was von Microsoft sein muss, dann halt Dot-Net 4.0+
C ist gerade mal ein paar Jahre juenger als Fotran66 ... und fuer eine System-nahe Programmiersprache haben die Sprach-Designer von C die objektorientierte Array-Verarbeitung wohl zu recht als erlaesslich erachtet ;-))
Fortran 95 und vorallem Fortran 2003 sind sehr moderne Sprachen in dem viele Dinge vordefiniert sind.
Beispiele:
eine Matrix A, beliebiger Größe nullen: A = 0
in C müßte man mit 3 Schleifen arbeiten
Matrizenmultiplikation: MATMUL(A,B)
Matrix A mit Zeilenrang m, Matrix B mit Spaltenrang n
in C sind wieder 3 Schleifen notwendig
Man darf sich nicht mehr vom alten F77-Stil abschrecken lassen, das ist schon lang vorbei. ;-)
Der wird nur noch aus Kompatibilitätsgründen mitgeschleift, die Programmierer sind angehalten F77 mindestens in F95 umzuschreiben. Tools die dies unterstützen gibt es auch.
in C liesse sich der Speicherbereich von beliebig dimensionalen double-Feldern
leicht mit:
double a[x][y][z];
memset(&a, 0, sizeof(double) * x * y * z);
ohne 3 Schleifen auf null setzen
Freilich ist das nur ein 'Hack' ... allerdings sollte man Fortran95 bzw. Fortran2003
sinnvollerweise mit 'Gleichaltrigen' vergleichen ... z.B. C++, Objective C, D, (Compilierbares) Python (-> schaut Euch mal SAGE an), (High Performance) Java und wenn es was von Microsoft sein muss, dann halt Dot-Net 4.0+
C ist gerade mal ein paar Jahre juenger als Fotran66 ... und fuer eine System-nahe Programmiersprache haben die Sprach-Designer von C die objektorientierte
Array-Verarbeitung wohl zu recht als erlaesslich erachtet ;-))
Ich habe C nicht die Daseinsberechtigung abgesprochen!
Mit Fortran macht man mathematische Berechnungen, es gibt nur in Fortran 2003 die intrinsischen IEEE-Module. Sowas fehlt in allen anderen Hochsprachen. Sowas musste man einbauen weil die Hardwarehersteller zu blöd sind mal auf ein paar numerische Mathematiker zu hören.
BTW, wikibooks hilft
In Fortran stecken 30 Jahre Erfahrung, das gibt man nicht auf!
Was High Performance Java betrifft, es gibt schöne Ideen auf math.nist.gov, es schlägt nur nicht in Standard-Java ein, also macht man Fortran.
in C liesse sich der Speicherbereich von beliebig dimensionalen double-Feldern
leicht mit:
double a[x][y][z];
memset(&a, 0, sizeof(double) * x * y * z);
ohne 3 Schleifen auf null setzen
Freilich ist das nur ein 'Hack' ... allerdings sollte man Fortran95 bzw. Fortran2003
sinnvollerweise mit 'Gleichaltrigen' vergleichen ... z.B. C++, Objective C, D, (Compilierbares) Python (-> schaut Euch mal SAGE an), (High Performance) Java und wenn es was von Microsoft sein muss, dann halt Dot-Net 4.0+
C ist gerade mal ein paar Jahre juenger als Fotran66 ... und fuer eine System-nahe Programmiersprache haben die Sprach-Designer von C die objektorientierte
Array-Verarbeitung wohl zu recht als erlaesslich erachtet ;-))