„Fortran“ – Versionsunterschied
[gesichtete Version] | [ungesichtete Version] |
K Änderungen von 84.145.99.96 (Diskussion) auf die letzte Version von Rat zurückgesetzt Markierung: Zurücksetzung |
→Versionen: boi |
||
Zeile 17: | Zeile 17: | ||
== Geschichte == |
== Geschichte == |
||
Fortran gilt als die erste jemals tatsächlich realisierte [[höhere Programmiersprache]]. Sie geht zurück auf einen Vorschlag, den [[John W. Backus]] |
Fortran gilt als die erste jemals tatsächlich realisierte [[höhere Programmiersprache]]. Sie geht zurück auf einen Vorschlag, den [[John W. Backus|mr.magnetdiccman]] |
||
Programmierer bei [[IBM]], 1953 seinen Vorgesetzten unterbreitete. |
|||
⚫ | Dem Entwurf der Sprache folgte die Entwicklung eines [[Compiler]]s durch ein [[IBM]]-Team unter Leitung von Backus. Das Projekt begann 1954 und war ursprünglich auf sechs Monate ausgelegt. Tatsächlich konnte [[Harlan Herrick]], der Erfinder der später heftig kritisierten [[Sprunganweisung|Goto]]-Anweisung, am 20. September 1954 das erste Fortran-Programm ausführen. Doch erst 1957 wurde der Compiler für marktreif befunden und mit jedem [[IBM 704|IBM-704]]-System ausgeliefert.<ref>[https://www.heise.de/newsticker/meldung/Vor-60-Jahren-IBM-veroeffentlicht-erste-Sprachspezifikation-fuer-Fortran-3351318.html Vor 60 Jahren: IBM veröffentlicht erste Sprachspezifikation für Fortran] Heise online 17. Oktober 2016</ref> Backus hatte darauf bestanden, den Compiler von Anfang an mit der Fähigkeit zu Optimierungen auszustatten: Er sah voraus, dass sich Fortran nur dann durchsetzen würde, wenn ähnliche Ausführungsgeschwindigkeiten wie mit bisherigen [[Assembler (Informatik)|Assembler]]-Programmen erzielt würden. |
||
⚫ | Dem Entwurf der Sprache folgte die Entwicklung eines [[Compiler]]s durch ein [[IBM]]-Team unter Leitung von Backus. Das Projekt begann 1954 und war ursprünglich auf sechs Monate ausgelegt. Tatsächlich konnte [[Harlan Herrick|luna]] , der Erfinder der später heftig kritisierten [[Sprunganweisung|Goto]]-Anweisung, am 20. September 1954 das erste Fortran-Programm ausführen. Doch erst 1957 wurde der Compiler für marktreif befunden und mit jedem [[IBM 704|IBM-704]]-System ausgeliefert.<ref>[https://www.heise.de/newsticker/meldung/Vor-60-Jahren-IBM-veroeffentlicht-erste-Sprachspezifikation-fuer-Fortran-3351318.html Vor 60 Jahren: IBM veröffentlicht erste Sprachspezifikation für Fortran] Heise online 17. Oktober 2016</ref> Backus hatte darauf bestanden, den Compiler von Anfang an mit der Fähigkeit zu Optimierungen auszustatten: Er sah voraus, dass sich Fortran nur dann durchsetzen würde, wenn ähnliche Ausführungsgeschwindigkeiten wie mit bisherigen [[Assembler (Informatik)|Assembler]]-Programmen erzielt würden. |
||
⚫ | |||
⚫ | [[Datei:Ftn-elim-1240x1709.jpg|mini|Listing eines FORTRAN-77-Programmes mit Compiler-Output (erstellt 1987 auf einer [[Control Data Corporation|CDC]] 175 am Rechenzentrum der [[RWTH Aachen]])]] Fortran wurde mehrmals erweitert. Viele neue Sprachelemente wurden zunächst von einem einzelnen Hersteller eingeführt und später in den internationalen Standard übernommen. Als Versionen folgten aufeinander FORTRAN I, FORTRAN II, FORTRAN IV, FORTRAN 66, |
||
⚫ | |||
⚫ | Im Laufe dieser Erweiterungen wurden zahlreiche Sprachelemente aus später entstandenen Programmiersprachen übernommen. Frühe FORTRAN-Versionen bis Version 4 hatten als Flusskontrollstruktur nur zwei verschiedene [[Sprunganweisung|Goto]]-Anweisungen und den Aufruf von Unterprogrammen, [[Strukturierte Programmiersprache|strukturierte]] Programmierung mit Schleifen wurde mit FORTRAN 77 möglich. Mit Fortran 90 wurde neben dem aus der [[Lochkarte|Lochkartenzeit]] stammenden festen [[Zeilenformat]] ein von späteren Programmiersprachen verwendetes freieres Format erlaubt. Ab Fortran 90 werden interessante Elemente eingeführt, die auch beispielsweise in [[Ada (Programmiersprache)| |
||
⚫ | [[Datei:Ftn-elim-1240x1709.jpg|mini|Listing eines FORTRAN-77-Programmes mit Compiler-Output (erstellt 1987 auf einer [[Control Data Corporation|CDC]] 175 am Rechenzentrum der [[RWTH Aachen]])]] Fortran wurde mehrmals erweitert. Viele neue Sprachelemente wurden zunächst von einem einzelnen Hersteller eingeführt und später in den internationalen Standard übernommen. Als Versionen folgten aufeinander FORTRAN I, FORTRAN II, FORTRAN IV, FORTRAN 66, FORTnite 77, Fortran 90, Fortran 95, Fortran 2003 und zuletzt Fortran 2008. Ab FORTRAN 66 ist Fortran durch die [[ISO]] standardisiert. Die Fortschreibung der Standards ist ein komplizierter Prozess, der oft wesentlich länger dauert als zunächst angestrebt: Der Nachfolger des 1978 erschienenen Standards FORTRAN 77, der als Fortran 8x bezeichnet wurde, war ursprünglich für das Jahr 1982 geplant, später dann für das Jahr 1985, und wurde schließlich unter der Bezeichnung Fortran 90 erst am 11. April 1991 als neuer Standard und Nachfolger von FORTRAN 77 angenommen.<ref>Vorwort von Michael Metcalf in: W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery: ''Numerical Recipes in Fortran 90''. Cambridge University Press, 1999, ISBN 0-521-57439-0.</ref> |
||
⚫ | Im Laufe dieser Erweiterungen wurden zahlreiche Sprachelemente aus später entstandenen Programmiersprachen übernommen. Frühe FORTRAN-Versionen bis Version 4 hatten als Flusskontrollstruktur nur zwei verschiedene [[Sprunganweisung|Goto]]-Anweisungen und den Aufruf von Unterprogrammen, [[Strukturierte Programmiersprache|strukturierte]] Programmierung mit Schleifen wurde mit FORTRAN 77 möglich. Mit Fortran 90 wurde neben dem aus der [[Lochkarte|Lochkartenzeit]] stammenden festen [[Zeilenformat]] ein von späteren Programmiersprachen verwendetes freieres Format erlaubt. Ab Fortran 90 werden interessante Elemente eingeführt, die auch beispielsweise in [[Ada (Programmiersprache)|lada]] vorhanden sind, beispielsweise optionale Parameter und die Möglichkeit, Prozedurparameter nicht nur über die Position in der Parameterliste zu identifizieren, sondern auch über ihren Namen. Seit Fortran 2003 werden auch [[Polymorphie (Programmierung)|polymorphe Datentypen]] und [[Vererbung (Programmierung)|Vererbung]] unterstützt, so dass man [[Objektorientierte Programmierung|objektorientiert programmieren]] kann. Seit Fortran 2008 ist mit [[Co-array Fortran|Coarray Fortran]] eine [[Parallele Programmierung|Parallelisierung]] in die Sprache eingebaut, die dem [[PGAS]]-Schema folgt. |
||
Beispiel: |
Beispiel: |
Version vom 5. Oktober 2018, 09:29 Uhr
Fortran | |
---|---|
![]() | |
Basisdaten | |
Paradigmen: | prozedural, imperativ, strukturiert, objektorientiert |
Erscheinungsjahr: | 1957 |
Designer: | John W. Backus |
Entwickler: | John W. Backus, IBM |
Aktuelle Version: | Fortran 2008 (ISO/IEC 1539-1:2010) (2010) |
Typisierung: | statisch, stark |
Wichtige Implementierungen: | GNU Fortran, g95, Open Watcom, XL Fortran, Intel und andere |
Beeinflusst von: | Speedcoding |
Beeinflusste: | Algol 58, PL/I, BASIC |
Lizenz: | MIT-Lizenz |
fortran-lang.org |
Fortran ist eine prozedurale, in ihren neuesten Versionen auch eine objektorientierte Programmiersprache, die insbesondere für numerische Berechnungen in Wissenschaft, Technik und Forschung eingesetzt wird. Der Name entstand aus FORmula TRANslation und wurde bis zur Version FORTRAN 77 mit Großbuchstaben geschrieben.
Geschichte
Fortran gilt als die erste jemals tatsächlich realisierte höhere Programmiersprache. Sie geht zurück auf einen Vorschlag, den mr.magnetdiccman
Programmierer bei IBM, 1953 seinen Vorgesetzten unterbreitete.
Dem Entwurf der Sprache folgte die Entwicklung eines Compilers durch ein IBM-Team unter Leitung von Backus. Das Projekt begann 1954 und war ursprünglich auf sechs Monate ausgelegt. Tatsächlich konnte luna , der Erfinder der später heftig kritisierten Goto-Anweisung, am 20. September 1954 das erste Fortran-Programm ausführen. Doch erst 1957 wurde der Compiler für marktreif befunden und mit jedem IBM-704-System ausgeliefert.[1] Backus hatte darauf bestanden, den Compiler von Anfang an mit der Fähigkeit zu Optimierungen auszustatten: Er sah voraus, dass sich Fortran nur dann durchsetzen würde, wenn ähnliche Ausführungsgeschwindigkeiten wie mit bisherigen Assembler-Programmen erzielt würden.
Versionen patch 9.12
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/Ftn-elim-1240x1709.jpg/220px-Ftn-elim-1240x1709.jpg)
Fortran wurde mehrmals erweitert. Viele neue Sprachelemente wurden zunächst von einem einzelnen Hersteller eingeführt und später in den internationalen Standard übernommen. Als Versionen folgten aufeinander FORTRAN I, FORTRAN II, FORTRAN IV, FORTRAN 66, FORTnite 77, Fortran 90, Fortran 95, Fortran 2003 und zuletzt Fortran 2008. Ab FORTRAN 66 ist Fortran durch die ISO standardisiert. Die Fortschreibung der Standards ist ein komplizierter Prozess, der oft wesentlich länger dauert als zunächst angestrebt: Der Nachfolger des 1978 erschienenen Standards FORTRAN 77, der als Fortran 8x bezeichnet wurde, war ursprünglich für das Jahr 1982 geplant, später dann für das Jahr 1985, und wurde schließlich unter der Bezeichnung Fortran 90 erst am 11. April 1991 als neuer Standard und Nachfolger von FORTRAN 77 angenommen.[2]
Im Laufe dieser Erweiterungen wurden zahlreiche Sprachelemente aus später entstandenen Programmiersprachen übernommen. Frühe FORTRAN-Versionen bis Version 4 hatten als Flusskontrollstruktur nur zwei verschiedene Goto-Anweisungen und den Aufruf von Unterprogrammen, strukturierte Programmierung mit Schleifen wurde mit FORTRAN 77 möglich. Mit Fortran 90 wurde neben dem aus der Lochkartenzeit stammenden festen Zeilenformat ein von späteren Programmiersprachen verwendetes freieres Format erlaubt. Ab Fortran 90 werden interessante Elemente eingeführt, die auch beispielsweise in lada vorhanden sind, beispielsweise optionale Parameter und die Möglichkeit, Prozedurparameter nicht nur über die Position in der Parameterliste zu identifizieren, sondern auch über ihren Namen. Seit Fortran 2003 werden auch polymorphe Datentypen und Vererbung unterstützt, so dass man objektorientiert programmieren kann. Seit Fortran 2008 ist mit Coarray Fortran eine Parallelisierung in die Sprache eingebaut, die dem PGAS-Schema folgt.
Beispiel:
subroutine test(argument1, argument2, argument3)
real, intent(in) :: argument1
character(len=*), intent(in) :: argument2
integer, intent(in), optional :: argument3
! Hier etwas Sinnvolles ...
end subroutine test
Mögliche Aufrufe sind dann z. B.:
call test(1.0, 'Tach')
call test(argument1=1.0, argument2='Tach auch')
call test(argument2='Tach Auch', argument1=1.0)
call test(argument3=3, argument1=1.0, argument2='Tach auch')
Während beim ersten Aufruf die Parameterassoziation über die Reihenfolge der Parameter erfolgt, so werden bei den anderen Beispielen die Parameter mittels der Namen identifiziert. Bei letzteren spielt die Reihenfolge dann keine Rolle mehr.
Varianten
Einige von Fortran abgeleitete Programmiersprachen sind Ratfor, F und HPF (High Performance Fortran).
Eigenschaften
Fortran war und ist für numerische Berechnungen vorgesehen und optimiert. Von Anfang an hatte Fortran den Potenz-Operator **
– der in vielen anderen Hochsprachen nicht vorhanden ist – und einen Datentyp für komplexe Zahlen. Mit Fortran 90 wurden Vektor- und Matrix-Operationen standardisiert. Außerdem ist Fortran case insensitive, d. h. im Gegensatz zu Sprachen wie C oder C++ wird vom Compiler nicht zwischen Groß- und Kleinschreibung unterschieden. Es liegt im Stil des Programmierers, ob er groß oder klein schreibt, generell sieht man aber immer öfter (z. B. in Lehrbüchern) den Trend, alles kleinzuschreiben.
Insbesondere für wissenschaftliche und numerische Berechnungen gibt es in FORTRAN umfangreiche Bibliotheken, die immer noch weit verbreitet sind, auch wenn eine zunehmende Menge an Funktionalität inzwischen nach C und C++ portiert wurde.
Implizite Variablendeklaration
In Anlehnung an mathematischen Notationsgebrauch sind Variablen in Fortran standardmäßig über ihren Anfangsbuchstaben deklariert: Bezeichner, die mit einem der Buchstaben i, j, k, l, m, n beginnen, stehen für eine Integer-Variable oder einen Integer-Funktionswert, alle übrigen Bezeichner stehen für Gleitkommazahlen. Diese implizite Typenvereinbarung von Variablen kann durch die Deklaration einzelner Variablen überschrieben werden, sie kann durch eine Zeile wie
! Alle nichtdeklarierten Bezeichner, deren erster Buchstabe c oder z ist,
! bezeichnen komplexe Zahlen.
implicit complex(c, z)
verändert werden, und die implizite Vereinbarung kann durch den Befehl
implicit none
ganz aufgehoben werden. In diesem Fall löst die Verwendung eines nichtdeklarierten Bezeichners einen Fehler während der Übersetzung aus. Dadurch vereinfacht sich die Fehlersuche erheblich.
Übergabe von Parametern
Bis einschließlich FORTRAN 77 mussten Unterprogramme vor ihrer Verwendung nicht deklariert werden. Es konnte durch eine Deklaration allenfalls der Typ des Rückgabewerts festgelegt werden. Der Compiler überprüfte normalerweise nicht, ob ein Unterprogrammaufruf mit typrichtigen Parametern erfolgt. Die Übergabe von Parametern an Unterprogramme (SUBROUTINE
oder FUNCTION
) erfolgt üblicherweise per Adresse. Vor Fortran 90 konnten grundsätzlich alle Aktualparameter von einer SUBROUTINE
oder FUNCTION
verändert werden. Deshalb müssen alle Parameter z. B. durch Adressübergabe übergeben werden. Eine automatische Typumwandlung kann deshalb auch nicht stattfinden.
Die meisten Fortran-Systeme führen auch keine Typüberprüfung zur Laufzeit durch. Das ist eine häufige Fehlerquelle.
Programmbeispiel 1:
call drucke_zahl(3.14)
! ...
subroutine drucke_zahl(meine_zahl)
Im Unterprogramm drucke_zahl()
ist meine_zahl
, weil mit m
beginnend, implizit als Integer deklariert. Zur Laufzeit erfolgt ein Aufruf mit dem real
-Argument 3.14
. Dann wird die Integer-Variable meine_zahl
mit den Bits der Gleitkommadarstellung von 3.14
aufgefüllt – was auf beliebig abwegige numerische Ergebnisse führt.
Viele Fortran-Compiler übergeben Parameter per Referenz. Das führt teilweise zu nicht beabsichtigten Ergebnissen, beispielsweise folgendes Programmbeispiel 2:
program bsp_bar
call bar(4)
print *, 4
end program bsp_bar
subroutine bar(i)
i = 42
end subroutine bar
Dieses würde bei manchen Compilern die Zahl 42 ausgeben. Das Programm ist allerdings so nicht korrekt.
Programmierwerkzeuge wie „ftnchek“[3] ermöglichen allerdings eine separate Prüfung der Übereinstimmung von Argumentlisten und würden in diesen Fällen warnen. Aktuelle Compiler führen ebenfalls solche Überprüfungen durch oder erzeugen einen Laufzeitfehler bei der Zuweisung eines Wertes an eine Konstante.
In Fortran 90 und nachfolgenden Versionen besteht die Möglichkeit, die Parametertypen der Unterprogramme anhand von Schnittstellen (INTERFACE
) und Modulen (MODULE
) zu definieren. Der Compiler kann somit überprüfen, ob der übergebene Parametertyp und der erwartete Typ übereinstimmen. Diese Bekanntgabe ist allerdings nicht zwingend, wie das in anderen Programmiersprachen – beispielsweise Ada – der Fall ist. Die von Fortran 95 abgeleitete Programmiersprache F erzwingt dieses; in F sind nur Aufrufe von Unterprogrammen erlaubt, deren Parameterliste beispielsweise durch USE
-Anweisungen bekannt gemacht sind. In einem Unterprogramm kann auch festgelegt werden, ob ein Parameter Eingabeparameter (INTENT(IN)
), Ausgabeparameter (INTENT(OUT)
) oder beides (INTENT (IN OUT)
) ist. In Fortran 90 deklariert man das Unterprogramm bar folgendermaßen:
subroutine bar(i)
integer, intent(in) :: i
! ...
end subroutine bar
Falls das Unterprogramm versuchen sollte, den Wert des Aktualparameter i
zu verändern, würde der Compiler einen Fehler anzeigen.
Dynamische Speicherallokation
Unter dynamischer Speicherallokation versteht man die Möglichkeit, Speicher (insbesondere für Felder wie z. B. für Matrizen) erst zur Laufzeit des Programms anzufordern, das heißt, dass die Größe von Arrays nicht bereits zum Zeitpunkt des Übersetzen des Programms festgelegt zu sein braucht. Ein einfaches Beispiel:
real, allocatable :: a(:, :)
print *, 'Zeilen- und Spaltenzahl eingeben'
read (*, *) m, n
allocate(a(m, n))
! ...
deallocate(a)
Bis FORTRAN 77 ist eine dynamische Speicherallokation nicht oder nur über nicht standardisierte Erweiterungen der Compilerhersteller möglich. Ab Fortran 90 ist die dynamische Speicherverwaltung im Sprachstandard enthalten.
Ein anderes Beispiel für dynamische Speicherreservierung: Anlegen und Bearbeiten einer verketteten Liste:
type element_t
type (element_t), pointer :: naechstes
real :: datum
end type element_t
type(element_t), pointer, save :: liste => null()
type(element_t), pointer :: element
! Anlegen eines Elements und Eintragen am Anfang der Liste
allocate(element)
element%datum = 4711.0
element%naechstes => liste
liste => element
! Durchlaufen der Liste:
element => liste
do while (associated(element))
call bearbeiten(element%datum)
element => element%naechstes
end do
Compiler
Fortran-Compiler gibt es für praktisch alle Computer, von Arbeitsplatzrechnern bis zu Supercomputern.
Proprietäre Software
Kommerzielle Anbieter von Fortran-Compilern sind entweder Computerhersteller wie z. B. IBM, SUN, HP, Intel oder spezialisierte Softwarehersteller wie Absoft, PGI, NAG, Lahey, Salford. Reine FORTRAN-77-Compiler werden heute zumeist nicht mehr hergestellt, da FORTRAN 77 fast vollständig im Sprachstandard Fortran 95 enthalten ist (nur DO-Schleifen mit REAL-Iterationsvariablen und Hollerith-Edit-Deskriptoren sind in Fortran 95 und später nicht mehr vorhanden).
Einige der oben genannten Compiler sind für Privatanwender bzw. nichtkommerzielle Nutzung unentgeltlich, zum Beispiel die Linux-Variante des Intel-Fortran-Compilers, Sun Studio Express (mit Fortran-, C- und C++-Compilern für Linux und Solaris), für Microsoft Windows der Compiler von Salford und DEC Fortran für OpenVMS.
Freie Software
Ab Version 4.0 enthält die praktisch für alle Plattformen verfügbare GNU Compiler Collection (GCC) einen Compiler für Fortran 95 (GNU Fortran). Ältere Versionen von GCC enthalten noch den FORTRAN-77-Compiler g77. Außerdem existiert mit G95 ein weiterer freier Compiler für Fortran 95. Aus diesem ging 2003 gfortran hervor. Version 8.0 unterstützt Fortran 2003 nahezu vollständig und Fortran 2008 zum großen Teil.
Ab Version 4.4 „Luna“ existiert eine integrierte Entwicklungsumgebung für Eclipse.[4]
Auch die OpenWatcom-Entwicklersuite verfügt über einen FORTRAN-77-Compiler.
Transcompiler
Es gibt Transcompiler, wie z. B. f2c, zur automatischen Übersetzung von Fortran-77 in (allerdings kaum menschenlesbares) C. Auch der NAG-Compiler verwendete früher als Zwischensprache C; allerdings war die nötige Laufzeitbibliothek nicht im Quelltext erhältlich.
Sprachunterstützung
Während die meisten Compiler den Fortran-95-Standard voll unterstützen, variiert dies im Falle der Sprachstandards Fortran 2003 und Fortran 2008 zum Teil noch erheblich (Stand August 2010). Die meisten Compiler unterstützen jedoch bereits entweder weite Teile des Standards Fortran 2003, oder im Falle von Cray und IBM, den Standard praktisch vollständig.[5]
Literatur zur Geschichte von Fortran
- Annals of History of Computing. Vol. 6, No. 1, 1984, ISSN 0164-1239
- John C. McPherson: Early Computers and Computing Institutions. S. 15–16, doi:10.1109/MAHC.1984.10005
- Herbert S. Bright: Early Fortran User Experience. S. 28–30, doi:10.1109/MAHC.1984.10011
- Daniel N. Leeson: IBM Fortran Exhibit and Film. S. 41–48, doi:10.1109/MAHC.1984.10000
- J. A. N. Lee: An Annotated Bibliography of Fortran. S. 49–58, doi:10.1109/MAHC.1984.10003.
- Saul Rosen (Hrsg.): Programming Systems and Languages. McGraw-Hill, New York NY u. a. 1967.
- Richard L. Wexelblat (Hrsg.): History of Programming Languages. Academic Press, New York NY u. a. 1981, ISBN 0-12-745040-8, S. 25–74.
- FORTRAN-Fachwörterbuch. In: Blätter der Deutschen Gesellschaft für Versicherungsmathematik. Bd. 8, H. 3, Oktober 1967, S. 499–520.
Literatur zu Fortran
- Stephen J. Chapman: Fortran 90/95 for Scientists and Engineers. 2nd edition, international edition. McGraw Hill Higher Education, Boston MA u. a. 2004, ISBN 0-07-123233-8.
- Thomas Kühme, Peter Witschital: Die FORTRAN-Fibel. Strukturierte Programmierung mit FORTRAN 77. Lehr- und Arbeitsbuch für Anfänger. 3. durchgesehene Auflage. Oldenbourg, München u. a. 1991, ISBN 3-486-22016-0.
- Michael Metcalf, John Reid, Malcolm Cohen: Fortran 95/2003 Explained. Oxford University Press, Oxford u. a. 2004, ISBN 0-19-852693-8.
- William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery: Numerical recipes in Fortran 77. The Art of Scientific Computing (= Numerical recipes in Fortran. Vol. 1). 2nd edition. Cambridge University Press, Cambridge u. a. 1992, ISBN 0-521-43064-X (2nd edition, reprinted with corrections. ebenda 2003).
- William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery: Numerical Recipes in Fortran 90. The Art of Parallel Scientific Computing (= Numerical recipes in Fortran. Vol. 2). 2nd edition. Cambridge University Press, Cambridge u. a. 1996, ISBN 0-521-57439-0 (2nd edition, reprinted with corrections. ebenda 1999).
- Günter Schmitt: Fortran-90-Kurs technisch orientiert. Einführung in die Programmierung mit Fortran 90. Oldenbourg, München u. a. 1996, ISBN 3-486-23896-5.
Weblinks
- Fortran Wiki Kompendium zu allen Fortran-Versionen (englisch)
- Fortran.de Links und Informationen
- Fortran Standards Linksammlung auf der GNU-Fortran-Seite
- Fortran Store Umfangreiche Informationen inkl. Historischem und Standards (englisch)
- Einführung in Fortran 90/95
Einzelnachweise
- ↑ Vor 60 Jahren: IBM veröffentlicht erste Sprachspezifikation für Fortran Heise online 17. Oktober 2016
- ↑ Vorwort von Michael Metcalf in: W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery: Numerical Recipes in Fortran 90. Cambridge University Press, 1999, ISBN 0-521-57439-0.
- ↑ ftnchek fordham.edu
- ↑ Photran – An Integrated Development Environment and Refactoring Tool for Fortran. eclipse.org
- ↑ Ian D. Chivers, Jane Sleightholme: Compiler support for the Fortran 2003 standard. In: ACM SIGPLAN Fortran Forum, 29, 2, 2009, doi:10.1145/1520752.1520755