Forran

Forran
Fortran logo.svg
Paradigma Multi-Paradigma: strukturiert, Imperativ (prozedural, objektorientierter), generisch, Array
Entworfen von John Backus
Entwickler John Backus und IBM
Erstmals erschienen 1957; Vor 65 Jahren
Stabile Version
FORTRAN 2018 (ISO / IEC 1539-1: 2018) / 28. November 2018; Vor 3 Jahren
Disziplin tippen stark, statisch, Manifest
Dateiname -Erweiterungen .f, .for, .f90
Webseite fortran-lang.org
Haupt Implementierungen
Absoft, Cray, GFortran, G95, IBM Xl fortran, Intel, Hitachi, Lahey/Fujitsu, Gruppe numerische Algorithmen, Open Watcom, Pfadskale, PGI, Silberfrost, Oracle Solaris Studio, Andere
Beeinflusst von
Speedcoding
Beeinflusst
Algol 58, BASIC, C, Kapelle,[1] CMS-2, DOPE, Festung, Pl/i, Pakt i, MUMPS, Idl, Ratte

Forran (/ˈfɔːrtræn/; früher Forran) ist ein allgemeiner Zweck, zusammengestellt Imperativ Programmiersprache das ist besonders geeignet für Numerische Berechnung und Wissenschaftliches rechnen.

Forran wurde ursprünglich von entwickelt von IBM[2] In den 1950er Jahren für wissenschaftliche und technische Anwendungen und anschließend dominierten das wissenschaftliche Computing. Es wird seit über sechs Jahrzehnten in rechenintensiven Bereichen wie z. Numerische Wettervorhersage, Finite -Elemente -Analyse, Computerflüssigkeitsdynamik, Geophysik, Computerphysik, Kristallographie und Computerchemie. Es ist eine beliebte Sprache für High Performance Computing[3] und wird für Programme verwendet, die die Welt bewerten und die Welt bewerten schnellste Supercomputer.[4][5]

Das IBM Blue Gene/P. Supercomputerinstallation im Jahr 2007 in der Argonne Leadership Angela Yang Computing Facility in der Argonne National Laboratory, in Lemont, Illinois, Vereinigte Staaten von Amerika.

Forran hatte zahlreiche Versionen, von denen jede Erweiterungen hinzugefügt hat und gleichzeitig die Kompatibilität mit vorhergehenden Versionen beibehalten hat. Aufeinanderfolgende Versionen haben Unterstützung für Unterstützung für Strukturierte Programmierung und Verarbeitung von charakterbasierten Daten (FORTRAN 77), Array -Programmierung, Modulare Programmierung und generische Programmierung (Forran 90), Hochleistungs -Forran (Forran 95), Objekt orientierte Programmierung (Forran 2003), gleichzeitige Programmierung (FORTRAN 2008) und Native Parallele Computing Fähigkeiten (Coarray Forran 2008/2018).

Forrans Design war die Grundlage für viele andere Programmiersprachen. Unter den bekannten ist BASIC, was auf Fortran II mit einer Reihe von einer Reihe von basiert Syntax Aufräumarbeiten, insbesondere bessere logische Strukturen,[6] und andere Änderungen, um in einer interaktiven Umgebung leichter zu arbeiten.[7]

Ab August 2021, Forran war ein Rang 13th in dem TIOBE index, ein Maß für die Popularität von Programmiersprachen, die 29 Positionen aus seiner Rangliste von 42 erklimmennd Im August 2020.[8]

Benennung

Das erste Handbuch für FORTRAN beschreibt es als a Formelübersetzungssystem und druckte den Namen mit Kleine Kappen, FOrtran.[9]: S.2[10] Andere Quellen legen nahe, dass der Name steht für Formelübersetzer,[11] oder Formelübersetzung.[12] Frühe IBM-Computer unterstützten keine niedrigeren Fallbuchstaben und die Namen von Versionen der Sprache durch FORTRAN 77 wurden normalerweise in All-Oppercase geschrieben[13] (FORTRAN 77 war die letzte Version, in der der FORTRAN -Charakter -Set nur Großbuchstaben enthielt[14]). Die offizielle Sprache Standards für Forran haben die Sprache als "fortran" mit bezeichnet Anfangsgrenze Seit Forran 90.

Ursprünge

Ende 1953, John W. Backus legte seinen Vorgesetzten einen Vorschlag bei IBM eine praktischere Alternative zu entwickeln Montagesprache für die Programmierung ihrer IBM 704 Hauptrechner.[10]: 69 Das historische Forran -Team von Backus bestand aus den Programmierern Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Harold Stern, Lois haibt, und David Sayre.[15] Die Konzepte beinhalteten eine leichtere Einreise von Gleichungen in einen Computer, eine Idee, die von entwickelt wurde von J. Halcombe Laning und demonstriert in der Laning- und Zierler -System von 1952.[16]

Das automatische Codierungssystem für die Forran für die IBM 704 (15. Oktober 1956), das erste Programmierhandbuch des Programmierers für FORTRAN[9]

Eine Entwurfsspezifikation für Die IBM -Mathematikformel -Übersetzungssystem wurde bis November 1954 fertiggestellt.[10]: 71 Das erste Handbuch für Forran erschien im Oktober 1956,[9][10]: 72  Mit dem ersten Forran Compiler geliefert im April 1957.[10]: 75 Dies war der erste Compiler optimieren, weil die Kunden zögerten, a zu verwenden Programmiersprache auf hoher Ebene Es sei denn, sein Compiler könnte Code generieren, wobei die Leistung der handcodierten Montagesprache nähert.[17]

Während die Community skeptisch war, dass diese neue Methode möglicherweise die Handcodierung übertreffen könnte, reduzierte sie die Anzahl der Programme Aussagen notwendig, um eine Maschine um den Faktor 20 zu betreiben, und erhielt schnell Akzeptanz. John Backus sagte während eines Interviews von 1979 mit Denken, das IBM Employee Magazine: "Ein Groß IBM 701Als ich Programme zur Berechnung von Raketenbahnen schrieb, begann ich mit der Arbeit an einem Programmiersystem zu arbeiten, um das Schreiben von Programmen zu erleichtern. "[18]

Die Sprache wurde von Wissenschaftlern für das Schreiben numerisch intensiver Programme weit verbreitet, die Compiler -Autoren ermutigten, Compiler zu produzieren, die einen schnelleren und effizienteren Code erzeugen könnten. Die Aufnahme von a Komplexer Zahlendatentyp In der Sprache, die Forran besonders für technische Anwendungen wie Elektrotechnik geeignet ist.[19]

Bis 1960 waren Versionen von FORTRAN für die verfügbar IBM 709, 650, 1620, und 7090 Computers. Bezeichnenderweise löste die zunehmende Beliebtheit von Forran konkurrierenden Computerherstellern dazu, Forran -Compiler für ihre Maschinen bereitzustellen, sodass bis 1963 über 40 FORTRAN -Compiler existierten. Aus diesen Gründen gilt Forran als die erste verwendete, die weit verbreitet ist plattformübergreifend Programmiersprache.

Die Entwicklung von Forran entsprach dem Frühe Entwicklung der Compiler -Technologieund viele Fortschritte in der Theorie und des Designs von Compiler wurden speziell durch die Notwendigkeit motiviert, einen effizienten Code für FORTRAN -Programme zu generieren.

Forran

Die erste Veröffentlichung von FORTRAN für den IBM 704[9] enthielt 32 Aussagen, einschließlich:

  • DIMENSION und EQUIVALENCE Aussagen
  • Zuweisungsanweisungen
  • Dreiweg Arithmetik IF Aussage, die die Kontrolle über einen von drei Standorten im Programm übergab, je nachdem, ob das Ergebnis der arithmetischen Aussage negativ, Null oder positiv war
  • IF Aussagen zur Überprüfung von Ausnahmen (ACCUMULATOR OVERFLOW, QUOTIENT OVERFLOW, und DIVIDE CHECK); und IF Aussagen zum Manipulieren Sinnesschalter und Sinneslichter
  • GO TO, berechnet GO TO, ASSIGNund zugewiesen GO TO
  • DO Schleifen
  • Formatiert i/o: FORMAT, READ, READ INPUT TAPE, WRITE, WRITE OUTPUT TAPE, PRINT, und PUNCH
  • Unformatierte I/O: READ TAPE, READ DRUM, WRITE TAPE, und WRITE DRUM
  • Andere I/O: END FILE, REWIND, und BACKSPACE
  • PAUSE, STOP, und CONTINUE
  • FREQUENCY Aussage (zur Bereitstellung Optimierung Hinweise auf den Compiler).

Die Arithmetik IF Die Aussage erinnerte an eine Drei-Wege Überlauf. Dieser Mangel wurde später durch "logische" Einrichtungen überwunden, die in Forran IV eingeführt wurden.

Das FREQUENCY Die Aussage wurde ursprünglich (und optional) verwendet, um Zweigwahrscheinlichkeiten für die drei Zweigfälle der Arithmetik -If -Anweisung zu geben. Der erste Forran -Compiler verwendete diese Gewichtung, um durchzuführen zur Kompilierungszeit a Monte-Carlo-Simulation des generierten Code, deren Ergebnisse zur Optimierung der Platzierung grundlegender Speicherblöcke verwendet wurden - eine sehr ausgefeilte Optimierung für ihre Zeit. Die Monte -Carlo -Technik ist in der Zeitung von Backus et al. Über diese Originalimplementierung dokumentiert. Das automatische Codierungssystem von FORTRAN:

Die grundlegende Programmeinheit ist die Grundblock; Ein Basisblock ist ein Programmabschnitt, das einen Einstiegspunkt und einen Ausstiegspunkt hat. Der Zweck von Abschnitt 4 besteht darin, Abschnitt 5 eine Tabelle der Vorgänger (Pred -Tabelle) vorzubereiten, die die Grundblöcke und Listen für jeden grundlegenden Block jeder der Grundblöcke aufweist, die sein unmittelbarer Vorgänger im Fluss sein können, zusammen mit der absoluten Frequenz von Jede solche grundlegende Blockverbindung. Diese Tabelle wird erhalten, indem das Programm einmal in Monte-Carlo-Mode ausgeführt wird, in dem das Ergebnis bedingter Übertragungen, die sich aus IF-Typ-Anweisungen und Berechnungen ergeben .[15]

Viele Jahre später die FREQUENCY Die Erklärung hatte keinen Einfluss auf den Code und wurde als Kommentaranweisung behandelt, da die Compiler diese Art von Kompilierungs-Zeit-Simulation nicht mehr machten. Ein ähnliches Schicksal ist getroffen Compiler Hinweise In mehreren anderen Programmiersprachen, z. das register Schlüsselwort in C.

Der erste FORTRAN -Compiler berichtete über diagnostische Informationen, indem er das Programm gestoppt hatte, wenn ein Fehler gefunden wurde und einen Fehlercode auf seiner Konsole ausgab. Dieser Code kann vom Programmierer in einer Fehlermeldungstabelle im Bedienungsanleitung nachgeschlagen werden, wobei er eine kurze Beschreibung des Problems bereitstellt.[9]: S.19–20[20] Später eine Fehlerhandlung von Fehlern zur Behandlung von Benutzerfehlern wie Division by Zero, entwickelt von der NASA.[21] wurde integriert und informierte Benutzer, in denen die Codezeile den Fehler enthielt.

Festes Layout und geschlagene Karten

FORTRAN CODE auf a Lochkarte, zeigt die speziellen Verwendungen der Spalten 1–5, 6 und 73–80 an
Eine Reproduktion eines Forran -Codierungsformulars, gedruckt auf Papier und von Programmierern verwendet werden, um Programme zum Stanzen auf Karten zu erstellen Tastatur Betreiber. Jetzt veraltet.

Vor der Entwicklung von Festplattendateien, Textredakteuren und Terminals wurden Programme am häufigsten in a eingegeben Tastatur Tastatur auf 80-Spalte geschlagene Karten, eine Zeile zu einer Karte. Das resultierende Kartenspiel würde in einen Kartenleser eingespeist werden, der zusammengestellt werden soll. Die Codes für Lochkarten enthielten keine Briefe mit niedrigerem Fall oder viele Sonderzeichen sowie spezielle Versionen des IBM 026 Tastatur wurden angeboten, die die in Forran verwendeten neu gepurponierten Sonderzeichen korrekt drucken würden.

Die Forran-Programme reflektierten die Praxis für die Eingabe von Lochkarten und wurden ursprünglich in einem festen Format geschrieben, wobei die ersten 72 Spalten in zwölf 36-Bit-Wörter gelesen wurden.

Ein Buchstaben "C" in Spalte 1 führte dazu, dass die gesamte Karte als Kommentar behandelt und vom Compiler ignoriert wurde. Andernfalls wurden die Spalten der Karte in vier Felder unterteilt:

  • 1 bis 5 waren das Etikettfeld: Eine Abfolge von Ziffern wurde hier als Etikett für die Verwendung in DO- oder Kontrollanweisungen wie GO zu und wenn oder um eine Formatanweisung zu identifizieren, auf die in einer Schreib- oder LES -Anweisung bezeichnet wird. Führende Nullen werden ignoriert und 0 ist keine gültige Etikettennummer.
  • 6 war ein Fortsetzungsfeld: ein anderes Zeichen als ein Leerzeichen oder eine Null hier führte dazu, dass die Karte als Fortsetzung der Aussage auf der vorherigen Karte angenommen wurde. Die Fortsetzungskarten wurden normalerweise 1, 2 nummeriert, usw. und die Startkarte könnte daher in ihrer Fortsetzungspalte Null haben - was keine Fortsetzung ihrer vorhergehenden Karte ist.
  • 7 bis 72 diente als Erklärungfeld.
  • 73 bis 80 wurden ignoriert (die IBM 704's Kartenleser Nur 72 Spalten verwendet).[22]

Die Spalten 73 bis 80 könnten daher zur Identifizierungsinformationen verwendet werden, z. B. für das Stanzen einer Sequenznummer oder des Textes, mit der Karten neu bestellt werden können, wenn ein Kartenstapel fallen gelassen wurde. Obwohl dies in der Praxis stabiler Produktionsprogramme vorbehalten war. Ein IBM 519 könnte verwendet werden, um ein Programmdeck zu kopieren und Sequenznummern hinzuzufügen. Einige frühe Compiler, z. B. die IBM 650er, hatten aufgrund von Einschränkungen ihrer Kartenleser zusätzliche Einschränkungen.[23] Tastaturen Es konnte nach Spalte 7 programmiert werden und nach Spalte 72 ausspringen. Spätere Compiler entspannten die meisten festen Formatbeschränkungen, und die Anforderung wurde im FORTRAN 90-Standard beseitigt.

Innerhalb des Feldes Feld, Whitespace -Charaktere (Leerzeichen) wurden außerhalb eines Textliterales ignoriert. Dies ermöglichte es, Räume zwischen Token für Kürze oder Einbeziehung von Räumen innerhalb von Kennungen für Klarheit einzubeziehen. Zum Beispiel, AVG OF X war eine gültige Kennung, äquivalent zu AVGOFX, und 101010DO101I=1,101 war eine gültige Aussage, gleichwertig zu10101 DO 101 I = 1, 101 Weil die Null in Spalte 6 so behandelt wird, als wäre es ein Raum (!) 101010DO101I=1.101 war stattdessen 10101 DO101I = 1.101die Zuordnung von 1.101 zu einer Variablen genannt DO101I. Beachten Sie den leichten visuellen Unterschied zwischen einem Komma und einer Periode.

Hollerith -Saiten, ursprünglich nur in Format- und Datenanweisungen zulässig, wurden durch eine Zeichenzahl und den Buchstaben H (z. B.,, 26HTHIS IS ALPHANUMERIC DATA.), so dass die Rohlinge innerhalb der Zeichenzeichenfolge erhalten bleiben können. Fehlzüge waren ein Problem.

Evolution

Forran II

IBM Forran II erschien 1958. Die Hauptverstärkung war die Unterstützung Verfahrensprogrammierung durch Erlaubnis von benutzer geschriebenen Unterprogrammen und Funktionen, die Werte mit übergebenen Parametern zurückgegeben haben Hinweis. Die gemeinsame Aussage lieferte Unterroutinen eine Möglichkeit, auf gemeinsame Zugriffe (oder global) Variablen. Es wurden sechs neue Aussagen eingeführt:[24]

  • SUBROUTINE, FUNCTION, und END
  • CALL und RETURN
  • COMMON

In den nächsten Jahren würde Forran II auch Unterstützung für die erhöhen DOUBLE PRECISION und COMPLEX Datentypen.

Frühe Fortran -Compiler unterstützten nein Rekursion In Unterroutinen. Frühe Computerarchitekturen unterstützten kein Konzept eines Stapels, und als sie direkt Unterroutine -Anrufe unterstützten, wurde der Rückkehrort häufig an einem festgelegten Ort neben dem Unterprogramm (z. B. die IBM 1130) oder ein bestimmtes Maschinenregister (IBM 360 ff), was nur eine Rekursion ermöglicht, wenn ein Stapel von Software gewartet wird und die Rückgabeadresse auf dem Stapel gespeichert wird, bevor der Anruf nach dem Rückkehr des Anrufs getätigt und wiederhergestellt wird. Obwohl in Forran 77 nicht angegeben, unterstützten viele F77 -Compiler die Rekursion als Option und die Burroughs MainframesMit der integrierten Rekursion wurde dies standardmäßig. Es wurde zu einem Standard in Fortran 90 über das neue Schlüsselwort rekursiv.[25]

Einfaches FORTRAN II -Programm

Dieses Programm für Herons FormelLesen Sie Daten zu einer Bandrolle mit drei 5-stelligen Ganzzahlen A, B und C als Eingabe. Es gibt keine "Typ" Deklarationen verfügbar: Variablen, deren Name mit i, j, k, l, m oder n beginnt, sind "Festpunkt" (d. H. Ganzzahlen), ansonsten schwimmend. Da Ganzzahlen in diesem Beispiel verarbeitet werden sollen, beginnen die Namen der Variablen mit dem Buchstaben "I". Der Name einer Variablen muss mit einem Buchstaben beginnen und kann mit Buchstaben und Ziffern bis zu einem Grenzwert von sechs Zeichen in Forran II fortgesetzt werden. Wenn a, b und c die Seiten eines Dreiecks in der Ebenengeometrie nicht darstellen können, endet die Ausführung des Programms mit einem Fehlercode von "Stop 1". Andernfalls wird eine Ausgangsleitung gedruckt, die die Eingangswerte für A, B und C zeigt, gefolgt von der berechneten Fläche des Dreiecks als schwimmende Punktzahl, die zehn Leerzeichen entlang der Ausgangslinie belegt und 2 Ziffern nach dem Dezimalpunkt zeigt , die .2 in F10.2 der Formatanweisung mit Etikett 601.

C Fläche eines Dreiecks mit einer Standardquadratwurzelfunktion C Eingang - Bandlesereinheit 5, Ganzzahleingang C Ausgang - Leitungsdruckereinheit 6, realer Ausgang C Eingabefehler -Fehler -Fehlerausgabecode 1 in der Auflistung der Arbeitsplatzsteuerung    LESEN EINGANG BAND 5, 501, IA, Ib, IC   501 FORMAT (3I5) C ia, IB und IC sind möglicherweise nicht negativ oder Null C Darüber hinaus die Summe von zwei Seiten eines Dreiecks C muss größer als die dritte Seite sein, also überprüfen wir auch das    WENN (IA) 777, 777, 701   701 WENN (Ib) 777, 777, 702   702 WENN (IC) 777, 777, 703   703 WENN (IA+Ib-IC) 777, 777, 704   704 WENN (IA+IC-Ib) 777, 777, 705   705 WENN (Ib+IC-IA) 777, 777, 799   777 PAUSE 1 C Mithilfe Herons Formel berechnen wir die C Bereich des Dreiecks   799 S = Floatf (IA + Ib + IC) / 2.0    BEREICH = Sqrtf( S * (S - Floatf(IA)) * (S - Floatf(Ib)) *   +  (S - Floatf(IC)))    SCHREIBEN AUSGANG BAND 6, 601, IA, Ib, IC, BEREICH   601 FORMAT (4H A= ,I5,5H  B= ,I5,5H  C= ,I5,8H  BEREICH= ,F10.2,   +  13H QUADRAT EINHEITEN)    PAUSE    ENDE 

Forran III

IBM entwickelte auch a Forran III 1958 erlaubte das Inline -Baugruppe Code unter anderen Funktionen; Diese Version wurde jedoch nie als Produkt veröffentlicht. Wie der 704 Forran und Forran II. Enthielt Forran III maschinellabhängige Funktionen, die Code von Maschine zu Maschine nicht portabel geschrieben machten.[10]: 76 Frühe Versionen von Forran, die von anderen Anbietern bereitgestellt wurden, litten unter dem gleichen Nachteil.

IBM 1401 FORTRAN

Forran wurde für die bereitgestellt IBM 1401 Computer von einem innovativen 63-Phasen-Compiler, der vollständig in seinem lief Kerngedächtnis von nur 8000 (sechs Bit) Zeichen. Der Compiler könnte von einem Klebeband oder von einem 2200-Karten-Deck ausgeführt werden; Es wurde kein weiteres Band- oder Festplattenspeicher verwendet. Es hielt das Programm im Speicher und lädt Overlays Das verwandelte es nach und nach in ausführbarer Form, wie von Haines beschrieben.[26] Dieser Artikel wurde in beiden Ausgaben von nachgedruckt, bearbeitet Anatomie eines Compilers [27] und im IBM -Handbuch "FORTRAN -Spezifikationen und Betriebsverfahren, IBM 1401".[28] Das ausführbare Formular war nicht vollständig Maschinensprache; Vielmehr wurden Floating-Punkt-Arithmetik-, Subscript-, Input/Output- und Funktionsreferenzen interpretiert, vorhergehen UCSD Pascal P-Code Um zwei Jahrzehnte.

IBM lieferte später einen FORTRAN IV -Compiler für die 1400 -Computer -Serie.[29]

Forran IV

IBM begann ab 1961 aufgrund von Kundenanforderungen von Forran IV. Forran IV die maschinenabhängigen Merkmale von FORTRAN II entfernt (wie z. READ INPUT TAPE), während neue Funktionen wie a hinzugefügt werden LOGICAL Datentyp, logisch Boolesche Ausdrücke und die logisch if Anweisung als Alternative zur Arithmetik, wenn Aussage. Forran IV wurde schließlich 1962 veröffentlicht, zuerst für die IBM 7030 ("Stretch") Computer, gefolgt von Versionen für die IBM 7090, IBM 7094und später für die IBM 1401 1966.

Bis 1965 sollte Forger IV. Standard von der entwickelt werden American Standards Association X3.4.3 Forran Arbeitsgruppe.[30]

Zwischen 1966 und 1968 bot IBM mehrere FORTRAN IV -Compiler für seine an System/360, jeder benannte nach Buchstaben, die die minimale Speichermenge des Compilers zum Ausführen mussten.[31] Die Buchstaben (F, G, H) stimmten mit den mit System/360 -Modellnummern verwendeten Codes überein, um die Speichergröße anzuzeigen. Jeder Buchstabe ist ein Faktor von zwei größeren:[32]: p. 5

  • 1966: Forran IV F für DOS/360 (64K Bytes)
  • 1966: Forran IV G für OS/360 (128.000 Bytes)
  • 1968: Forran IV H für OS/360 (256.000 Bytes)

Digital Equipment Corporation Aufrechterhalten von Decsystem-10 Forran IV (F40) für PDP-10 von 1967 bis 1975[33]

Ungefähr zu dieser Zeit hatte Forran IV zu einem wichtigen Bildungsinstrument und Implementierungen wie der Watfor and der University of Waterloo Watfiv wurden erstellt, um die komplexen Kompilier- und Verknüpfungsprozesse früherer Compiler zu vereinfachen.

Forran 66

Die vielleicht bedeutendste Entwicklung in der frühen Geschichte von Forran war die Entscheidung der Entscheidung American Standards Association (jetzt American National Standards Institute (ANSI)) ein von Bema gesponsertes Komitee, die, die Geschäftsgeräteherstellerverband, um eine zu entwickeln American Standard Forran. Die daraus resultierenden zwei im März 1966 genehmigten Standards definierten zwei Sprachen, Forran (basierend auf Forran IV, der als De -facto -Standard gedient hatte) und Grundlegende FORTRAN (basierend auf Forran II, aber seine maschinenabhängigen Merkmale abgestreift). Der von dem erste Standard definierte Forran, der offiziell mit X3,9-1966 bezeichnet wurde, wurde als bekannt als Forran 66 (Obwohl viele es weiterhin als Forran IV bezeichnet haben, die Sprache, auf der der Standard weitgehend basiert). Forran 66 wurde effektiv die erste Branchenversion von Forran. Forran 66 beinhaltete:

  • Hauptprogramm, SUBROUTINE, FUNCTION, und BLOCK DATA Programmeinheiten
  • INTEGER, REAL, DOUBLE PRECISION, COMPLEX, und LOGICAL Datentypen
  • COMMON, DIMENSION, und EQUIVALENCE Aussagen
  • DATA Anweisung zum Angeben von Anfangswerten
  • Intrinsisch und EXTERNAL (z. B. Bibliothek) Funktionen
  • Zuweisungsanweisung
  • GO TO, berechnet GO TO, zugewiesen GO TO, und ASSIGN Aussagen
  • Logisch IF und Arithmetik (Dreiweg) IF Aussagen
  • DO Schleifenerklärung
  • READ, WRITE, BACKSPACE, REWIND, und ENDFILE Aussagen für sequentielle I/O
  • FORMAT Anweisung und zugewiesenes Format
  • CALL, RETURN, PAUSE, und STOP Aussagen
  • Hollerith -Konstanten in DATA und FORMAT Aussagen und als Argumente für Verfahren
  • Identifikatoren von bis zu sechs Zeichen lang
  • Kommentarzeilen
  • END Linie

Forran 77

FORTRAN-77-Programm mit Compiler-Ausgabe, geschrieben auf a CDC 175 bei RWTH Aachen University, Deutschland, 1987
4.3 BSD für die Digital Equipment Corporation (Dez.) Vax, Anzeige der Handbuch Für Forran 77 (F77) Compiler

Nach der Veröffentlichung des FORTRAN 66 -Standards stellten Compiler -Anbieter mehrere Erweiterungen ein Standard Forran, Aufforderung an das ANSI -Komitee X3J3 im Jahr 1969, mit der Arbeit zur Überarbeitung des Standards von 1966 unter Sponsoring von zu beginnen Cbema, der Computer Business Equipment Manufacturers Association (ehemals Bema). Endgültige Entwürfe dieses überarbeiteten Standards im Umlauf 1977, was zu einer formellen Genehmigung des neuen Fortran -Standards im April 1978 führte. Der neue Standard mit dem Namen heißt Forran 77 und offiziell mit X3.9-1978 bezeichnet, fügte eine Reihe bedeutender Funktionen hinzu, um viele der Mängel von Forran 66 zu beheben:

  • Block IF und END IF Aussagen mit optional ELSE und ELSE IF Klauseln, um eine verbesserte Sprachunterstützung für zu bieten Strukturierte Programmierung
  • DO Schleifenerweiterungen, einschließlich Parameterausdrücke, negativer Inkremente und Nullauslösezahlen
  • OPEN, CLOSE, und INQUIRE Aussagen für verbesserte E/A -Fähigkeiten
  • Direktzugdatei i/o
  • IMPLICIT Aussage, um implizite Konventionen zu überschreiben, dass nicht deklarierte Variablen ganzzahlig sind, wenn ihr Name mit I, J, K, L, M oder N beginnt (und anders real)
  • CHARACTER Datentyp, ersetzen Sie Hollerith-Zeichenfolgen durch die Charaktereingabe und -ausgabe sowie die Verarbeitung von charakterbasierten Daten durch stark erweiterte Einrichtungen
  • PARAMETER Aussage zur Angabe von Konstanten
  • SAVE Aussage für anhaltende lokale Variablen
  • Generische Namen für intrinsische Funktionen (z. SQRT akzeptiert auch Argumente anderer Typen, wie z. COMPLEX oder REAL*16).
  • Eine Reihe von Intrinsik (LGE, LGT, LLE, LLT) zum lexikalisch Vergleich von Strings, basierend auf dem ASCII Sammelsequenz. (Diese ASCII -Funktionen wurden von der verlangt US -Verteidigungsministerium, in ihrer bedingten Zustimmungsstunde.)

Bei dieser Überarbeitung des Standards wurden eine Reihe von Merkmalen auf eine Weise entfernt oder verändert, die ehemals Standard-Conforming-Programme ungültig machen könnte.(Die Entfernung war zu diesem Zeitpunkt die einzige zulässige Alternative zu X3J3 seit dem Konzept von "Missbilligung"War noch nicht für ANSI -Standards verfügbar.) Während die meisten der 24 Elemente in der Konfliktliste (siehe Anhang A2 von x3.9-1978) Lücken oder pathologische Fälle, die durch den vorherigen Standard, aber selten verwendet wurden, angesprochen wurden, wurden eine kleine Anzahl spezifischer Fähigkeiten absichtlich entfernt, wie z.

  • Hollerith -Konstanten und Hollerith Daten, wie z. GREET = 12HHELLO THERE!
  • Lesen in einen H -Bearbeitungsdeskriptor (Hollerith -Feld) in einer Formatspezifikation
  • Über integrieren von Array -Grenzen nach Einweisen
       ABMESSUNGEN A(10,5)    Y=  A(11,1) 
  • Übertragung der Kontrolle außerhalb und zurück in den Bereich einer DO -Schleife (auch als "erweiterter Bereich" bezeichnet)

Übergang zu ANSI Standard Forran

Die Entwicklung eines überarbeiteten Standards für den Nachfolger von Fortran 77 würde wiederholt verzögert, da der Standardisierungsprozess Schwierigkeiten hatte, mit raschen Änderungen der Computer- und Programmierpraxis Schritt zu halten. In der Zwischenzeit würde Forran 77 als "Standard Forran" seit fast fünfzehn Jahren zum historisch wichtigsten Dialekt werden.

Eine wichtige praktische Erweiterung von FORTRAN 77 war die Veröffentlichung von Mil-STD-1753 im Jahr 1978.[34] Diese Spezifikation, entwickelt von der US -Verteidigungsministerium, standardisiert eine Reihe von Funktionen, die von den meisten FORTRAN 77 -Compilern implementiert sind, aber nicht im ANSI Forran 77 -Standard enthalten sind. Diese Merkmale würden schließlich in den Standard -Standard von Fortran 90 aufgenommen.

Das IEEE 1003.9 Posix Standard, das 1991 veröffentlicht wurde, bot für Forran 77 -Programmierer einfaches Mittel, um POSIX -Systemaufrufe auszugeben.[35] Im Dokument wurden über 100 Anrufe definiert-sodass der Zugriff auf POSIX-kompatible Prozesssteuerung, Signalbehandlung, Dateisystemsteuerung, Gerätesteuerung, Verfahren und Stream-E/A auf tragbare Weise.

Forran 90

Der vielverzögerte Nachfolger von Forran 77, informell bekannt als Forran 90 (und vorher, Forran 8x), wurde schließlich als ISO/IEC -Standard 1539: 1991 im Jahr 1991 und 1992 als ANSI -Standard veröffentlicht. Zusätzlich zur Änderung der offiziellen Schreibweise von Forran nach Fortran fügte diese große Revision viele neue Funktionen hinzu, um die wesentlichen Änderungen der Programmierpraxis zu widerspiegeln hatte sich seit dem Standard von 1978 entwickelt:

  • Freiform-Quelleingabe Entfernte die Notwendigkeit, die ersten sechs Zeichenpositionen zu überspringen, bevor sie Aussagen eingaben.
  • Kleinwörter in Kleinbuchstaben
  • Identifikatoren bis zu 31 Zeichen lang (im vorherigen Standard waren es nur sechs Zeichen).
  • Inline -Kommentare
  • Fähigkeit, in Arrays (oder Array -Abschnitten) als Ganzes zu arbeiten und so die Berechnungen von Mathematik und technischen Berechnungen erheblich zu vereinfachen.
    • Ganze, partielle und maskierte Array -Zuweisungsanweisungen und Array -Ausdrücke, wie z. X(1:N)=R(1:N)*COS(A(1:N))
    • WHERE Anweisung für selektive Array -Zuordnung
    • Konstanten und Ausdrücke mit Array-Wert,
    • Benutzerdefinierte Array-Wert-Funktionen und Array-Konstruktoren.
  • RECURSIVE Verfahren
  • Modulezu gruppenbezogenen Verfahren und Daten zusammen und stellen sie anderen Programmeinheiten zur Verfügung, einschließlich der Fähigkeit, die Zugänglichkeit nur auf bestimmte Teile des Moduls zu beschränken.
  • Ein stark verbesserter Argumentationsmechanismus, der zulässt Schnittstellen zur Kompilierungszeit überprüft werden
  • Benutzergeschriebene Schnittstellen für generische Prozeduren
  • Bedienerüberlastung
  • Abgeleitete (strukturierte) Datentypen
  • Neue Datentyp -Deklarationssyntax, um den Datentyp und andere Attribute von Variablen anzugeben
  • Dynamische Speicherzuweisung durch die ALLOCATABLE Attribut und das ALLOCATE und DEALLOCATE Aussagen
  • POINTER Attribut, Zeigerzuweisung und NULLIFY Aussage, um die Schöpfung und Manipulation der Dynamik zu erleichtern Datenstrukturen
  • Strukturierte Schleifenkonstrukte mit einer END DO Aussage für die Kündigung der Schleife und EXIT und CYCLE Aussagen zum normalen Ende DO Schleifen -Iterationen auf ordnungsgemäße Weise
  • SELECT . . . CASE Konstrukt für mehrwegene Auswahl
  • Tragbare Spezifikation der numerischen Präzision unter der Kontrolle des Benutzers
  • Neue und verbesserte intrinsische Verfahren.

Veralterung und Löschungen

Im Gegensatz zur vorherigen Überarbeitung entfernte Forran 90 keine Funktionen.[36] Jedes Programm für Standard-konforme FORTRAN 77-Programm war auch unter Fortran 90 Standard-Konformen, und beide Standards sollten verwendet werden, um sein Verhalten zu definieren.

Ein kleiner Satz von Merkmalen wurde als "veraltet" identifiziert und wurde voraussichtlich in einem zukünftigen Standard entfernt. Alle Funktionen dieser Early-Onesion-Funktionen können durch neuere FORTRAN-Funktionen durchgeführt werden. Einige werden beibehalten, um die Portierung alter Programme zu vereinfachen, aber viele wurden in Fortran 95 gelöscht.

Veralterung und Löschungen
Übergeordnetes Merkmal Aktueller Status
Arithmetik, wenn es sich um die Befragung handelt Gelöscht
Nichtteger-DO-Parameter oder Kontrollvariablen Gelöscht
Gemeinsame Beendigung oder Beendigung der gemeinsamen Do-Loop Gelöscht
Verzweigen, um von außen von einem Block zu enden Gelöscht
Alternative Rückkehr Veraltet
Pause Erklärung Gelöscht
Anweisung zuweisen und zugewiesen werden zur Anweisung Gelöscht
Zugewiesene Anweisungsnummern und Formatspezifizierer Gelöscht
H Deskriptoren bearbeiten Gelöscht
Berechnet zu Anweisung Veraltet
Aussagefunktionen Veraltet
Datenanweisungen zwischen ausführbaren Anweisungen Veraltet
Charakter* Form der Charaktererklärung Veraltet
Angenommene Charakterlängenfunktionen Veraltet
Quellcode festgelegt Veraltet

"Hallo Welt!" Beispiel

Programm Hallo Welt  drucken *, "Hallo Welt!" Endprogramm Hallo Welt 

Forran 95

Forran 95offiziell als ISO/IEC 1539-1: 1997 veröffentlicht, war eine geringfügige Überarbeitung, hauptsächlich, um einige herausragende Probleme des FORTRAN 90-Standards zu lösen. Trotzdem fügte Forran 95 auch eine Reihe von Erweiterungen hinzu, insbesondere aus dem Hochleistungs -Forran Spezifikation:

  • FORALL und verschachtelt WHERE Konstrukte zur Unterstützung der Vektorisierung
  • Benutzerdefinierten PURE und ELEMENTAL Verfahren
  • Standardinitialisierung abgeleiteter Typkomponenten, einschließlich Zeigerinitialisierung
  • Erweiterte die Fähigkeit, Initialisierungsausdrücke für Datenobjekte zu verwenden
  • Initialisierung von Zeigern auf NULL()
  • Klar definiert das ALLOCATABLE Arrays werden automatisch behandelt, wenn sie aus dem Spielraum ausgehen.

Eine Reihe von intrinsischen Funktionen wurde erweitert (zum Beispiel a dim Argument wurde zur hinzugefügt maxloc intrinsisch).

Mehrere Merkmale, die in Fortran 90 als "veraltet" festgestellt wurden, wurden aus Forran 95 entfernt:

  • DO Aussagen verwenden REAL und DOUBLE PRECISION Indexvariablen
  • Verzweigungen an an END IF Anweisung von außerhalb seines Blocks
  • PAUSE Aussage
  • ASSIGN und zugewiesen GO TO Anweisung und zugewiesene Formatspezifizierer
  • H Hollerith Deskriptor bearbeiten.

Eine wichtige Ergänzung zu Forran 95 war die ISO -technischer Bericht TR-15581: Verbesserte Datentypanlagen, informell bekannt als die Allocatable TR. Diese Spezifikation definierte verbesserte Verwendung von ALLOCATABLE Arrays vor der Verfügbarkeit von FORTRAN 2003-konformen Forger-Compilern. Zu solchen Verwendungen gehören ALLOCATABLE Arrays als abgeleitete Typkomponenten, in Prozedur -Dummy -Argument -Listen und als Funktionsrückgabewerte. (ALLOCATABLE Arrays sind vorzuziehen POINTER-Basierte Arrays, weil ALLOCATABLE Die Arrays werden von Fortran 95 garantiert, um automatisch zu behandeln, wenn sie aus dem Umfang ausgehen, und beseitigt die Möglichkeit von Speicherleckage. Darüber hinaus sind Elemente von Allocatable -Arrays zusammenhängend und Aliasing ist kein Problem für die Optimierung von Array -Referenzen, sodass Compiler einen schnelleren Code generieren können als bei Zeigern.[37]))

Eine weitere wichtige Ergänzung zu Forran 95 war die ISO technischer Bericht TR-15580: Ausnahmebehandlung für Gleitpunkte, informell bekannt als die IEEE TR. Diese Spezifikation definierte Unterstützung für IEEE Floating-Punkt-Arithmetik und Schwimmpunkt Ausnahmebehandlung.

Bedingte Zusammenstellung und unterschiedliche Länge Strings

Zusätzlich zur obligatorischen "Basissprache" (definiert in ISO/IEC 1539-1: 1997) enthält die Fortran 95-Sprache auch zwei optionale Module:

  • Variierende Länge Zeichenzeichenfolgen (ISO/IEC 1539-2: 2000)
  • Bedingte Zusammenstellung (ISO/IEC 1539-3: 1998)

die zusammen den mehrteiligen internationalen Standard zusammenstellen (ISO/IEC 1539).

Gemäß den Standardsentwicklern "beschreiben die optionalen Teile in sich geschlossene Merkmale, die von einem erheblichen Teil von Benutzern und/oder Implementierern angefordert wurden, die jedoch nicht als ausreichend Allgemeinheit angesehen werden, damit sie in allen Standard-Konformen erforderlich sind Forran Compiler. " Wenn jedoch ein standardmäßiger Bergantran solche Optionen bereitstellt, muss er "gemäß der Beschreibung dieser Einrichtungen im zuständigen Teil des Standards bereitgestellt werden".

Moderner Fortran

Die Sprache, die durch die Standards des 21. Jahrhunderts definiert ist, insbesondere aufgrund der Einbeziehung von Objekt orientierte Programmierung Unterstützung und anschließend Coarray Forran, wird oft als "moderner Forran" bezeichnet, und der Begriff wird in der Literatur zunehmend verwendet.[38]

Forran 2003

FORTRAN 2003, Offiziell als ISO/IEC 1539-1: 2004 veröffentlicht, ist eine wichtige Überarbeitung, die viele neue Funktionen einführt.[39] Eine umfassende Zusammenfassung der neuen Funktionen von Forran 2003 ist in der Forran Working Group erhältlich (ISO/IEC JTC1/SC22/WG5) Offizielle Website.[40]

Aus diesem Artikel umfassen die wichtigsten Verbesserungen für diese Revision:

  • Abgeleitete Typverbesserungen: Parametrisierte abgeleitete Typen, verbesserte Kontrolle der Zugänglichkeit, verbesserte Strukturkonstruktoren und Finalizer
  • Objekt orientierte Programmierung Unterstützung: Type Erweiterung und Vererbung, Polymorphismus, dynamische Typallokation und typengebundene Verfahren, die eine vollständige Unterstützung für Abstrakte Datentypen
  • Datenmanipulationsverbesserungen: Allocatable -Komponenten (Einbeziehung von TR 15581), aufgeschobene Typparameter, VOLATILE Attribut, explizite Typspezifikation in Array -Konstruktoren und Zuordnungsanweisungen, Zeigerverbesserungen, erweiterte Initialisierungsausdrücke und verbesserte intrinsische Verfahren
  • Eingangs-/Ausgangsverbesserungen: asynchron Übertragung, Streamzugriff, Benutzer angegebene Übertragungsvorgänge für abgeleitete Typen, Benutzer spezifizierte Steuerung der Rundung während der Formatkonvertierungen, benannte Konstanten für vorvereinigte Einheiten, die FLUSH Anweisung, Regularisierung von Schlüsselwörtern und Zugriff auf Fehlermeldungen
  • Verfahrenszeiger
  • Unterstützung für IEEE Floating-Punkt-Arithmetik und Schwimmpunkt Ausnahmebehandlung (Einbeziehung von TR 15580)
  • Interoperabilität mit der C -Programmiersprache
  • Unterstützung für die internationale Nutzung: Zugang zu ISO 10646 4-Byte-Zeichen und Auswahl von Dezimal- oder Kommas in numerisch formatierter Eingabe/Ausgabe
  • Verbesserte Integration in das Betriebssystem des Hosts: Zugriff auf Befehlszeile Argumente, Umgebungsvariablen, und Prozessorfehlermeldungen

Eine wichtige Ergänzung zu Forran 2003 war die ISO -technischer Bericht TR-19767: Verbesserte Modulanlagen in Forran. Dieser Bericht bereitgestellt Submodules, die Forran -Module ähnlicher machen Modula-2 Module. Sie sind ähnlich wie Ada private Kinder-Einheiten. Auf diese Weise kann die Spezifikation und Implementierung eines Moduls in separaten Programmeinheiten ausgedrückt werden, wodurch die Verpackung großer Bibliotheken verbessert wird, die Erhaltung von Geschäftsgeheimnissen bei der Veröffentlichung definitiver Schnittstellen ermöglicht und Kompilierungskaskaden verhindert.

FORTRAN 2008

ISO/IEC 1539-1: 2010, informell bekannt als Fortran 2008, wurde im September 2010 genehmigt.[41][42] Wie bei Forran 95 handelt es sich um ein kleines Upgrade, das Klarstellungen und Korrekturen in Forran 2003 sowie einige neue Funktionen einführt. Die neuen Fähigkeiten umfassen:

  • Submodule-zusätzliche Strukturierungsanlagen für Module; Ersetzt ISO/IEC TR 19767: 2005
  • Coarray Forran - Ein paralleles Ausführungsmodell
  • Das Gleichzeitlich tun Konstrukte - für Schleifen -Iterationen ohne Interdependenzen
  • Das zusammenhängende Attribut - um Speicherlayoutbeschränkungen anzugeben
  • Das Blockkonstrukt - Kann Deklarationen von Objekten mit Konstruktumfang enthalten
  • Rekursive zu Allokatable -Komponenten - als Alternative zu rekursiven Zeigern in abgeleiteten Typen

Der endgültige Entwurf International Standard (FDIS) ist als Dokument N1830 erhältlich.[43]

Eine Ergänzung zu Forran 2008 ist die Internationale Standardisierungsorganisation (ISO) Technische Spezifikation (TS) 29113 auf Weitere Interoperabilität von FORTRAN mit C.,[44][45] Dies wurde im Mai 2012 an ISO zur Genehmigung vorgelegt. Die Spezifikation fügt Unterstützung für den Zugriff auf den Array -Deskriptor von C hinzu und ermöglicht das Ignorieren des Typs und des Ranges der Argumente.

Forran 2018

Die jüngste Überarbeitung der Sprache (Forran 2018) wurde früher als Fortran 2015 bezeichnet.[46] Es ist eine bedeutende Überarbeitung und wurde am 28. November 2018 veröffentlicht.[47]

Der Fortran 2018 enthält zwei zuvor veröffentlichte technische Spezifikationen:

  • ISO/IEC TS 29113: 2012 Weitere Interoperabilität mit C.[48]
  • ISO/IEC TS 18508: 2015 Zusätzliche parallele Funktionen in Forran[49]

Zusätzliche Änderungen und neue Funktionen umfassen die Unterstützung für ISO/IEC/IEEE 60559: 2011 (die Version des IEEE Floating-Punkt-Standard Vor der neuesten Minor Revision IEEE 754-2019), Hexadezimaleingabe/-ausgabe, impliziten Verbesserungen und anderen Änderungen.[50][51][52][53]

Sprachmerkmale

Eine vollständige Beschreibung der von Forran 95 eingeführten FORTRAN -Sprachmerkmale ist im verwandten Artikel. FORTRAN 95 Sprachmerkmale. Die nach späteren Maßstäben definierten Sprachversionen werden häufig gemeinsam als "moderner Fortran" bezeichnet und in der Literatur beschrieben.

Wissenschaft und Ingenieurswesen

Allgemeine relativistische magnetohydrodynamische FORTRAN -Simulation der Schwarzen Lochakkretion unter Verwendung des BHAC -Codes mit kartesischem adaptivem Netz (www.bhac.science).
Geschwindigkeit und Meeresoberflächentemperatur in den Ozeanen, berechnet mit dem NEMO -Forger -Code (Nucleus für die europäische Modellierung des Ozeans, https://www.nemo-ocean.eu) in dem Barcelona Supercomputing Center (2020).

Obwohl ein Journal -Artikel von 1968 von den Autoren von BASIC bereits als "altmodisch" beschrieben, als "altmodisch" beschrieben,[54] Ab 2022 Seit über sechs Jahrzehnten werden Programme in Forran geschrieben, und es gibt eine Vielzahl von Fortran -Software im täglichen Gebrauch in den wissenschaftlichen und technischen Gemeinden.[55] Jay Pasachoff schrieb 1984, dass "Physik- und Astronomie -Studenten einfach Forran lernen müssen. In Forran gibt es so viel, dass es unwahrscheinlich ist, dass Wissenschaftler sich ändern werden Pascal, Modula-2, oder Wasauchimmer."[56] 1993 nannte Cecil E. Leith Forran die "Muttersprache des wissenschaftlichen Computing" und fügte hinzu, dass sein Ersatz durch eine andere mögliche Sprache "eine verlassene Hoffnung bleiben könnte".[57]

Es ist die Hauptsprache für einige der intensivsten Super-Computer Aufgaben wie in Astronomie, Klimamodellierung, Computerchemie, Computerökonomie, Computerflüssigkeitsdynamik, Computerphysik, Datenanalyse,[58] Hydrologische Modellierung, numerische lineare Algebra und numerische Bibliotheken (Lapack, IMSL und GAUL), Optimierung, Satellitensimulation, Baustatik, und Wettervorhersage. Viele der schwebenden Punkt-Benchmarks, um die Leistung neuer Computerprozessoren wie die schwimmenden Punktkomponenten des Spezifikation Benchmarks (z. B.,, CFP2006, CFP2017) sind in Forran geschrieben. Mathematikalgorithmen sind gut dokumentiert in Numerische Rezepte.

Abgesehen davon verwenden modernere Codes in der Computerwissenschaft im Allgemeinen große Programmbibliotheken, wie z. Metis Für die Grafikpartitionierung, PETSC oder Trilinos Für lineare Algebra -Funktionen, Deal.ii oder Fenics Für Mesh- und Finite -Elemente -Unterstützung und andere generische Bibliotheken. Seit den frühen 2000er Jahren wurden viele der weit verbreiteten Support -Bibliotheken auch implementiert C und in jüngerer Zeit in C ++. Andererseits hochrangige Sprachen wie z. Matlab, Python, und R sind in bestimmten Bereichen der Computerwissenschaft beliebt geworden. Infolgedessen wird auch ein wachsender Bruchteil wissenschaftlicher Programme in solch höheren Skriptsprachen geschrieben. Deshalb, Einrichtungen für die Interoperation mit C. wurden zu Forran 2003 hinzugefügt und durch die technische ISO/IEC -Spezifikation 29113 verbessert, die in die Fortran 2018 aufgenommen wurde, um eine flexiblere Interoperation mit anderen Programmiersprachen zu ermöglichen.

Software für NASA -Sonden Voyager 1 und Voyager 2 wurde ursprünglich in Forran 5 geschrieben und später auf Forran 77 portiert. Ab dem 25. September 2013Einige der Software sind noch in Forran geschrieben und einige wurden auf C portiert.[59]

Portabilität

Portabilität war in den frühen Tagen ein Problem, da es keinen vereinbarten Standard hatte - nicht einmal das Referenzhandbuch von IBM - und Computerfirmen wetteiferten, um ihre Angebote von anderen zu unterscheiden, indem sie inkompatible Funktionen bereitstellen. Standards haben die Portabilität verbessert. Der Standard von 1966 lieferte eine Referenz Syntax und Semantik, aber die Anbieter lieferten weiterhin inkompatible Erweiterungen. Obwohl sorgfältige Programmierer erkannten, dass die Verwendung von inkompatiblen Erweiterungen teure Tragbarkeitsprobleme verursachte und daher Programme wie z. Der Pfort -Verifier,[60][61] Erst nach dem Standard von 1977, als das National Bureau of Standards (jetzt NIST) veröffentlicht FIPS Pub 69Diese von der US -Regierung gekauften Prozessoren mussten erweitert werden, um Erweiterungen des Standards zu diagnostizieren. Anstatt zwei Prozessoren anzubieten, hatte im Wesentlichen jeder Compiler letztendlich zumindest eine Option zur Diagnose von Erweiterungen.[62][63]

Inkompatible Erweiterungen waren nicht das einzige Tragbarkeitsproblem. Für numerische Berechnungen ist es wichtig, die Merkmale der Arithmetik zu berücksichtigen. Dies wurde von Fox et al. im Kontext des Standards von 1966 durch die HAFEN Bibliothek.[61] Die Ideen darin wurden weit verbreitet und wurden schließlich über intrinsische Untersuchungsfunktionen in den Standard von 1990 aufgenommen. Die weit verbreitete (jetzt fast universelle) Einführung der IEEE 754 Der Standard für binäre Gleitkomma-Arithmetik hat dieses Problem im Wesentlichen beseitigt.

Der Zugriff auf die Computerumgebung (z. B. die Befehlszeile des Programms, Umgebungsvariablen, textuelle Erläuterung der Fehlerbedingungen) blieb ein Problem, bis sie vom Standard von 2003 behandelt wurde.

Große Sammlungen von Bibliothekssoftware, die als lose mit technischen und wissenschaftlichen Berechnungen wie Grafikbibliotheken in C bezeichnet werden könnten, wurden in C geschrieben, und der Zugriff auf sie stellte daher ein Portabilitätsproblem vor. Dies wurde durch Einbeziehung der C -Interoperabilität in den Standard von 2003 behandelt.

Es ist jetzt möglich (und relativ einfach), ein völlig tragbares Programm in Forran zu schreiben, auch ohne Rückgriff auf a Präprozessor.

Veraltete Varianten

Bis zur Entwicklung des FORTRAN 66 -Standards unterstützte jeder Compiler seine eigene Variante von FORTRAN. Einige waren vom Mainstream unterschiedlicher als andere.

Der erste Fortran Compiler hat einen hohen Effizienzstandard für kompilierten Code festgelegt. Dieses Ziel machte es schwierig, einen Compiler zu erstellen, so dass es normalerweise von den Computerherstellern durchgeführt wurde, um den Verkauf von Hardware zu unterstützen. Dies hinterließ eine wichtige Nische: Compiler, die schnell waren und für den Programmierer (oft ein Schüler) eine gute Diagnostik lieferten. Beispiele sind Watfor, Watfiv, Pufft und in kleinerem Maßstab, verzichten, wits fortran und kingston fortran 2.

Forran 5 wurde von Daten allgemein Corp in den späten 1970er und frühen 1980er Jahren für die Nova, Finsternis, und MV Computerlinie. Es hatte einen optimierenden Compiler, der für Minicomputer seiner Zeit ziemlich gut war. Die Sprache ähnelt am besten Forran 66.

FORTRAN V. wurde verteilt von Steuerungsdatengesellschaft im Jahr 1968 für die CDC 6600 Serie. Die Sprache basierte auf Forran IV.[64]

UNIVAC bot auch einen Compiler für die 1100 -Serie bekannt als Forran V. Ein Spinoff von Univac Forran V war Athena Forran.

Spezifische Varianten produziert von den Anbietern von leistungsstarken wissenschaftlichen Computern (z.B., Burroughs, Steuerungsdatengesellschaft (CDC), Cray, Honeywell, IBM, Texas Instrumente, und Univac) Erweiterungen zu Forran, um spezielle Hardwarefunktionen wie z. Befehlscache, ZENTRALPROZESSOR Pipelinesund Vektorarrays. Zum Beispiel einer von IBMs Forran -Compilern (H erweiterte IUP) hatte ein Maß an Optimierung, das die neu ordnete Maschinensprache Anweisungen um mehrere interne arithmetische Einheiten gleichzeitig zu beschäftigen. Ein anderes Beispiel ist CFD, eine spezielle Variante von Forran, die speziell für die entwickelt wurde ILLIAC IV Supercomputer, läuft bei NASA's Ames Research Center. IBM Research Labs entwickelten auch eine erweiterte auf Forran-basierte Sprache namens namens Vectran Zur Verarbeitung von Vektoren und Matrizen.

Objektorientierter Fortran war eine objektorientierte Erweiterung von FORTRAN, in der Datenelemente in Objekte gruppiert werden können, die parallel instanziiert und ausgeführt werden können. Es war für Sonne, Iris, ipscund NCube, wird aber nicht mehr unterstützt.

Solche maschinenspezifischen Erweiterungen sind im Laufe der Zeit entweder verschwunden oder in den Hauptstandards in den Elementen einbezogen. Die wichtige verbleibende Erweiterung ist OpenMP, eine plattformübergreifende Erweiterung für die gemeinsame Speicherprogrammierung. Eine neue Erweiterung, Coarray Forran, soll die parallele Programmierung unterstützen.

Für Transit war der Name einer reduzierten Version der IBM 704 Forran -Sprache, die für das IBM 650 implementiert wurde, wobei Ende der 1950er Jahre ein Übersetzerprogramm bei Carnegie entwickelt wurde.[65] Der folgende Kommentar wird im IBM -Referenzhandbuch angezeigt (Für das automatische Codierungssystem des Transits C28-4038, Copyright 1957, 1959 von IBM):

Das FORTRAN -System wurde für eine komplexere Maschine als die 650 entwickelt, und folglich sind einige der 32 Aussagen im Referenzhandbuch des FORTRAN -Programmierers für das für das Transitsystem nicht akzeptabel. Darüber hinaus wurden bestimmte Einschränkungen der Fortran -Sprache hinzugefügt. Keine dieser Beschränkungen macht jedoch ein Quellprogramm, das für Transit geschrieben wurde, das mit dem FORTRAN -System für den 704 nicht kompatibel ist.

Die zulässigen Aussagen waren:

  • Arithmetische Zuweisungsanweisungen, z. B.,, a = b
  • GO to n
  • Gehen Sie zu (N1, N2, ..., NM), ich
  • If (a) n1, n2, n3
  • PAUSE
  • STOP
  • Do n i = M1, M2
  • CONTINUE
  • END
  • READ n, list
  • PUNCH n, list
  • DIMENSION V, V, V, ...
  • EQUIVALENCE (a,b,c), (d,c), ...

Bis zu zehn Unterprogramme könnten in einem Programm verwendet werden.

Für Transitaussagen waren nur die Spalten 7 bis 56 beschränkt. Stanzkarten wurden für Eingabe und Ausgabe auf dem IBM 650 verwendet. Drei Pässe mussten den Quellcode in die "IT" -Prieldie übersetzen, dann die IT -Anweisungen in Seifenbaugruppe zusammenstellen und schließlich das Objektprogramm erstellen, das dann dann konnte in die Maschine geladen werden, um das Programm auszuführen (mithilfe von Lochkarten für Dateneingaben und Ausgabe von Ergebnissen auf Stanzkarten).

Für die 650er Jahre existierten zwei Versionen mit einer 2000 Word Memory-Drum: für Transit I (s) und für Transit II, letztere für Maschinen, die mit Indexierungsregistern und automatischer Schwimmpunktdezimal ausgestattet sind (Dezimal "(Dezimal)bi-winterkranker) Arithmetik. Anhang A des Handbuchs enthielt Schaltplan für die IBM 533 Kartenleser/Punsch Schalttafel.

FORTRAN-Basissprachen

Vor Forran 77 eine Reihe von Präprozessoren wurden üblicherweise verwendet, um eine freundlichere Sprache zu bieten, mit dem Vorteil, dass der vorverarbeitete Code auf jeder Maschine mit einem Standard -FORTRAN -Compiler zusammengestellt werden kann. Diese Präprozessoren würden normalerweise unterstützen Strukturierte Programmierung, Variablennamen länger als sechs Zeichen, zusätzliche Datentypen, Bedingte Zusammenstellung, und sogar Makro Fähigkeiten. Zu den beliebten Präprozessoren gehörten Flecs, Iftran, Mortran, Sftran, s-fortran, Ratte, und Ratfiv. Ratfor und Ratfiv haben beispielsweise a implementiert C-ähnliche Sprache, Ausgabe des vorverarbeiteten Code in Standard -FORTRAN 66. Trotz der Fortschritte in der FORTRAN -Sprache werden Precessoren weiterhin für die bedingte Kompilierung und Makrosubstitution verwendet.

Eine der frühesten Versionen von Forran, die in den 60er Jahren eingeführt wurde, wurde im Volksmund an Hochschulen und Universitäten eingesetzt. Entwickelt, unterstützt und verteilt von der Universität von Waterloo, Watfor war größtenteils auf Forran IV. Ein Student, der Watfor benutzte, konnte seinen Batch -Fortran -Job einreichen, und wenn es keine Syntaxfehler gäbe, würde das Programm direkt zur Ausführung übergehen. Diese Vereinfachung ermöglichte es den Schülern, sich auf die Syntax und die Semantik oder den Ausführungslogikfluss ihres Programms zu konzentrieren, anstatt sich mit der Einreichung zu befassen Arbeitskontrollsprache (JCL), Compile/Link-Edit/Execution Succentive Process (ES) oder andere Komplexität der Mainframe-/Minicomputer-Umgebung. Eine Nebenseite dieser vereinfachten Umgebung war, dass Watfor keine gute Wahl für Programmierer war, die die erweiterten Fähigkeiten ihres Wirtsprozessors benötigten, z. B. Watfor hatte in der Regel nur sehr begrenzten Zugang zu E/A -Geräten. Watfor wurde abgelöst von Watfiv und seine späteren Versionen.

Programm; s=0 i=1,n; s=s+1; Pause i; s='s'  Halt 

(Leitungsprogrammierung)

Lrltran wurde am entwickelt Lawrence Strahlungslabor Unterstützung für die arithmetische und dynamische Speicherung von Vektor unter anderem zur Unterstützung der Systemprogramme. Die Verteilung umfasste das LTSS -Betriebssystem.

Der FORTRAN-95-Standard enthält eine optionale Teil 3 Dies definiert eine optionale Bedingte Zusammenstellung Fähigkeit. Diese Fähigkeit wird oft als "Coco" bezeichnet.

Viele FORTRAN -Compiler haben Untergruppen der integrierten Untergruppen der C Präprozessor in ihre Systeme.

Simscript ist ein anwendungsspezifisches FORTRAN -Präprozessor für die Modellierung und Simulation großer diskreter Systeme.

Das F Programmiersprache wurde als saubere Untergruppe von Fortran 95 entwickelt, die versuchten, die redundanten, unstrukturierten und veralteten Merkmale von FORTRAN wie die zu entfernen EQUIVALENCE Aussage. F behält die in Fortran 90 hinzugefügten Array -Funktionen bei und beseitigt Kontrollanweisungen, die durch strukturierte Programmierkonstrukte sowohl zu FORTRAN 77 als auch von FORTRAN 90 hinzugefügt wurden zu Bildung und wissenschaftlichem Computer ".[66] Essential Lahey Forran 90 (ELF90) war eine ähnliche Untergruppe.

Lahey und Fujitsu haben sich zusammengetan, um Forran for the Microsoft zu erstellen .NET Framework.[67] Silverfrost FTN95 kann auch .NET -Code erstellen.[68]

Codebeispiele

Das folgende Programm zeigt dynamische Speicherzuweisung und Array-basierte Operationen, zwei Funktionen, die mit FORTRAN 90 eingeführt wurden. Besonders hervorzuheben ist das Fehlen von DO Schleifen und IF/THEN Aussagen zur Manipulation des Arrays; Mathematische Operationen werden auf das gesamte Array angewendet. Ebenfalls offensichtlich ist die Verwendung beschreibender Variablennamen und allgemeine Codeformatierung, die dem zeitgenössischen Programmierstil entsprechen. In diesem Beispiel wird ein durchschnittlicher Daten über die interaktiv eingegebene Daten berechnet.

Programm Durchschnitt  ! Lesen Sie in einigen Zahlen und nehmen Sie den Durchschnitt  ! Wie geschrieben, wenn es keine Datenpunkte gibt, wird durchschnittlich Null zurückgegeben  ! Dies ist zwar kein gewünschtes Verhalten, aber es hält dieses Beispiel einfach  implizit keine   real, Abmessungen(:),, Allokatierbar :: Punkte  ganze Zahl  :: Anzahl der Punkte  real  :: durchschnitt_points, positiv_aage, Negativ_aage  durchschnitt_points = 0,0  positiv_aage = 0,0  Negativ_aage = 0,0  schreiben (*,*) "Eingabezahl von Punkten zum Durchschnitt:"  lesen  (*,*) Anzahl der Punkte  zuweisen (Punkte(Anzahl der Punkte))  schreiben (*,*) "Geben Sie die Punkte zum Durchschnitt ein:"  lesen  (*,*) Punkte  ! Nehmen Sie den Durchschnitt, indem Sie Punkte summieren und durch number_of_points teilen  wenn (Anzahl der Punkte > 0) durchschnitt_points = Summe(Punkte) / Anzahl der Punkte  ! Bilden jetzt nur durchschnittliche und negative Punkte durchschnittlich  wenn (zählen(Punkte > 0.) > 0) positiv_aage = Summe(Punkte, Punkte > 0.) / zählen(Punkte > 0.)  wenn (zählen(Punkte < 0.) > 0) Negativ_aage = Summe(Punkte, Punkte < 0.) / zählen(Punkte < 0.)  ! Druckergebnis zur Terminalstdout -Einheit 6  schreiben (*,'(a, g12.4)' ') 'Durchschnitt =', durchschnitt_points  schreiben (*,'(a, g12.4)' ') "Durchschnitt der positiven Punkte =", positiv_aage  schreiben (*,'(a, g12.4)' ') "Durchschnitt der negativen Punkte =", Negativ_aage  Deallocation (Punkte) ! freier Speicher Endprogramm Durchschnitt 

Humor

Während der gleichen Sitzung des Forran Standards Committee, bei dem der Name "Forran 77" ausgewählt wurde Als schädlich angesehen". Dieser Vorschlag, der angeblich die Verwirrung, die manchmal zwischen dem Buchstaben" O "und der Ziffer -Null entsteht, durch Eliminierung des Buchstabens aus zulässigen Variablennamen eingehen. Die vorgeschlagene Methode bestand jedoch darin, den Buchstaben aus dem Zeichensatz vollständig zu beseitigen (wodurch beibehalten wird (wodurch behalten wird 48 Da die Anzahl der lexikalischen Zeichen, die der Dickdarm auf 49 erhöht hatte GO TO Aussage wie zuvor. (Problematisch FORMAT Aussagen würden auch beseitigt.) Es wurde festgestellt, dass dies "einige bestehende Programme ungültig machen", aber dass die meisten dieser "wahrscheinlich sowieso nicht konform waren".[69][unzuverlässige Quelle?][70]

Wenn X3J3 darüber diskutierte, ob die Mindestausflugszahl für eine Do -Loop in Forran 77 Null oder eins sein sollte (Zungenwechsel) Wenn es weniger als zwei wäre, gäbe es keinen Grund für eine Schleife!

Wenn angenommene Arrays von Längen hinzugefügt wurden, gab es einen Streit über das geeignete Zeichen, um die oberen und unteren Grenzen zu trennen. In einem Kommentar, der diese Argumente untersuchte, schrieb Dr. Walt Brainerd einen Artikel mit dem Titel "Astronomie vs. Gastroenterologie", weil einige Befürworter vorgeschlagen hatten, den Stern oder Stern ("*") zu verwenden, während andere den Dickdarm bevorzugten (":").

Variablennamen beginnend mit den Buchstaben I - N haben einen Standardtyp von Ganzzahl, während Variablen mit allen anderen Buchstaben standardmäßig auf real sind, obwohl Programmierer die Standardeinstellungen mit einer expliziten Deklaration überschreiben könnten.[71] Dies führte zum Witz: "In Forran ist Gott real (es sei denn, es wurde erklärt)."

Siehe auch

Verweise

  1. ^ "Chapel Spec (Anerkennung)" (PDF). Cray Inc. 1. Oktober 2015. Abgerufen 14. Januar 2016.
  2. ^ John Backus. "Die Geschichte von Forran I, II und III" (PDF). SoftwarePeservation.org. Abgerufen 19. November 2014.
  3. ^ Eugene Loh (18. Juni 2010). "Die ideale HPC -Programmiersprache". Warteschlange. 8 (6).
  4. ^ "HPL-Eine tragbare Implementierung des leistungsstarken Linpack-Benchmarks für verteilte Computer-Computer". Abgerufen 21. Februar 2015.
  5. ^ "Q13. Was sind die Benchmarks?". Übersicht - CPU 2017. Spezifikation. Abgerufen 13. November 2019.
  6. ^ "Fünfzig Jahre grundlegend". Zeit. 29. April 2014.
  7. ^ Szczepaniak, John (1. Mai 2014). "Eine Grundgeschichte von Grundstücken zu ihrem 50. Geburtstag". Gamasutra.
  8. ^ Tiobe -Software BV (August 2021). "Tiobe Index für August 2021". Tiobe.com. Tiobe. Abgerufen 4. August 2021.
  9. ^ a b c d e Backus, John Warner; Beeber, R. J.; Beste, Sheldon F.; Goldberg, Richard; Herrick, Harlan L.; Hughes, R. A.; Mitchell, L. B.; Nelson, Robert A.; Nutt, Roy; Sayre, David; Sheridan, Peter B.; Stern, Harold; Ziller, Irving (15. Oktober 1956). Sayre, David (ed.). Das automatische Codierungssystem von FORTRAN für das IBM 704 EDPM: Programmierer Referenzhandbuch (PDF). New York, USA: Abteilung für angewandte Wissenschaft und Programmierforschungsabteilung, International Business Machines Corporation. S. 2, 19–20. Archiviert (PDF) Aus dem Original am 4. Juli 2022. Abgerufen 4. Juli 2022. (2+51+1 Seiten)
  10. ^ a b c d e f Backus, John (Oktober - Dezember 1998). "Die Geschichte von Forran I, II und III" (PDF). IEEE Annals of the History of Computing. 20 (4): 68–78. doi:10.1109/85.728232. Archiviert (PDF) Aus dem Original am 3. März 2016. Abgerufen 17. Juni 2020. [1][2]
  11. ^ "Forran: Die wegweisende Programmiersprache". IBM. 7. März 2012. Abgerufen 19. Juli 2017.
  12. ^ "Forran". Enzyklopädie Britannica. 14. Juni 2021. Abgerufen 19. Juli 2021.
  13. ^ Chapman, Stephen J. (2018). Forran für Wissenschaftler und Ingenieure (Viertes Ausgabe). New York: McGraw-Hill-Ausbildung. p. 13. ISBN 978-0-07-338589-1.
  14. ^ Der vom FORTRAN 77-Standard definierte "Forran-Zeichensatz" war der minimale Charakter-Satz, der standardkonforme Compiler zur Unterstützung erforderlich waren. In der Praxis unterstützten viele FORTRAN 77 -Compiler die vollen ASCII Zeichensatz.
  15. ^ a b J. W. Backus; R. J. Beeber; S. am besten; R. Goldberg; L. M. HAIBT; H. L. Herrick; R. A. Nelson; D. Sayre; P. B. Sheridan; H. Stern; L. Ziller; R. A. Hughes; R. Nutt (Februar 1957). Das automatische Codierungssystem von FORTRAN (PDF). Western gemeinsame Computerkonferenz. S. 188–198. doi:10.1145/1455567.1455599.
  16. ^ Mindell, David (2008). Digital Apollo. Cambridge, MA: MIT Press. p. 99. ISBN 978-0-262-13497-2. JStor J.CTT5HHN02. OCLC 228031739.
  17. ^ Padua, David (Januar - Februar 2000). "Der Forran I Compiler" (PDF). Computing in Wissenschaft und Ingenieurwesen (Cise). die oberen Algorithmen. Universität von Illinois: IEEE. 2 (1): 70–75. Bibcode:2000cse ..... 2a..70p. doi:10.1109/5992.814661. Archiviert von das Original (PDF) am 17. Juni 2020. Der Forran I -Compiler war das erste große Projekt in der Codeoptimierung. Es wurde Probleme von entscheidender Bedeutung, deren allgemeine Lösung seit mehreren Jahrzehnten ein wichtiger Forschungsschwerpunkt in der Compiler -Technologie war. Viele klassische Techniken für die Analyse und Optimierung von Compiler können ihre Herkunft und Inspiration für den Forran I -Compiler verfolgen.
  18. ^ Brian Bergstein (20. Mai 2007). "Der Schöpfer von Forran John Backus stirbt". MSNBC. Abgerufen 29. Oktober 2018.
  19. ^ "Forran - Die erste Programmiersprache für numerische Berechnungen". Scihi -Blog. 15. Oktober 2019.
  20. ^ Programmierforschungsabteilung, International Business Machines Corporation (8. April 1957). Das automatische Codierungssystem von FORTRAN für das IBM 704 EDPM: Voranhandbuch des Bedieners (PDF). S. 6–37.
  21. ^ Betty Jo Armstead (21. Januar 2015). "Meine Jahre bei der NASA" (PDF). Denver Museum of Nature & Science. Archiviert von das Original (PDF) am 24. Dezember 2019. Abgerufen 15. Juni 2019.
  22. ^ Referenzhandbuch, IBM 7090 Datenverarbeitungssystem (PDF). 1961. A22-6528-3.
  23. ^ FORTRAN II Allgemeiner Informationshandbuch (PDF). 1963. Abgerufen 19. November 2014.
  24. ^ Referenzhandbuch, FORTRAN II für das IBM 704 -Datenverarbeitungssystem (PDF). 1958. C28-6000-2.
  25. ^ "Ibibilio.org". Ibiblio.org. Abgerufen 15. September 2014.
  26. ^ Haines, L. H. (1965). "Serienzusammenstellung und der 1401 Forran Compiler". IBM Systems Journal. 4 (1): 73–80. doi:10.1147/sj.41.0073.
  27. ^ Lee, John A. N. (1967). Anatomie eines Compilers. Van Nostrand Reinhold.
  28. ^ FORTRAN -Spezifikationen und Betriebsverfahren, IBM 1401 (PDF). IBM. C24-1455-2.
  29. ^ FORTRAN IV -Sprachspezifikationen, Programmspezifikationen und Betriebsverfahren, IBM 1401, 1440 und 1460 (PDF). IBM. April 1966. C24-3322-2.
  30. ^ McCracken, Daniel D. (1965). "Vorwort". Ein Leitfaden für die Fortran IV -Programmierung. New York: Wiley. p. v. ISBN 978-0-471-58281-6.
  31. ^ "Liste der Forger -Implementierungen 1957 - 1967". IEEE Annals. 2017. Abgerufen 17. Oktober 2017.
  32. ^ IBM System/360 Modell 50 Funktionseigenschaften (PDF). IBM. 1967. A22-6898-1.
  33. ^ Digital Equipment Corp. "Decsystem-10 Forran IV (F40) Programmierer Referenzhandbuch" (PDF). Github. Digital Equipment Corporation. Abgerufen 15. April 2022.
  34. ^ Mil-std-1753. DOD-Ergänzung zu X3.9-1978. Regierung des US -Regierung der US -Regierung. Archiviert von das Original am 9. November 2007. Abgerufen 13. Dezember 2007.
  35. ^ IEEE 1003.9-1992 - IEEE -Standard für InformationTechnology - POSIX (R) FORTRAN 77 Sprachschnittstellen - Teil 1: Bindung für Systemanwendungsprogrammschnittstellen (API). IEEE. Abgerufen 24. November 2018.
  36. ^ Anhang B.1
  37. ^ "Forran 95 Referenz". Gnu.org. Abgerufen 10. Mai 2014.
  38. ^ Lionel, Steve (30. Dezember 2013). "Doktor Forran in" Es ist eine moderne Forran -Welt "". Intel (Was Dec) Forum Forum Diskussionsgruppe. Intel. Abgerufen 11. April 2022.
  39. ^ "Forran 2003 - Letzter Arbeitsentwurf". Gnu.org. Abgerufen 10. Mai 2014.
  40. ^ "WG5 vervollständigt die Verarbeitung Forran 2003 und die TR". Nag.co.uk. 14. Mai 2004. Archiviert vom Original am 5. August 2004.{{}}: CS1 Wartung: Ungeeignete URL (Link). Es kann auch als PDF -Datei bei heruntergeladen werden "Die neuen Merkmale von Forran 2003" (PDF)..
  41. ^ "N1836, Zusammenfassung der Abstimmung/Tabelle der Antworten zu ISO/IEC-FDIS 1539-1, Informationstechnologie-Programmiersprachen-FORTRAN-Teil 1: Basissprache" (PDF).
  42. ^ "Forran 2008 - Letzter arbeitender Entwurf" (PDF). Gnu.org. Abgerufen 10. Mai 2014.
  43. ^ N1830, Informationstechnologie - Programmiersprachen - FORTRAN - Teil 1: Basissprache [3][Dead Link]
  44. ^ ISO/IEC TS 29113: 2012 - Informationstechnologie - Weitere Interoperabilität von FORTRAN mit C.
  45. ^ "Entwurf der technischen Spezifikation (TS) 29113" (PDF). wg5-fortran.org.
  46. ^ "Doktor Forran in" Achtzehn ist die neuen fünfzehn "". Software.intel.com. Abgerufen 20. November 2017.
  47. ^ "Forran 2018". ISO. Abgerufen 30. November 2018.
  48. ^ "Weitere Interoperabilität mit C" (PDF). ISO. Abgerufen 20. November 2017.
  49. ^ "Zusätzliche parallele Funktionen in Forran". ISO. Abgerufen 20. November 2017.
  50. ^ "Die neuen Funktionen von Forran 2015". ISO. Abgerufen 23. Juni 2017.
  51. ^ "Doktor Forran in" Eine Tür schließt "". Software.intel.com. Abgerufen 21. September 2015.
  52. ^ "Doctor Forran geht niederländisch: Forran 2015". Software.intel.com. Abgerufen 19. November 2014.
  53. ^ FORTRAN 2018 Interpretationsdokument (PDF). 9. Oktober 2018.
  54. ^ Kemeny, John G.; Kurtz, Thomas E. (11. Oktober 1968). "Dartmouth Time Sharing". Wissenschaft. 162 (3850): 223–228. Bibcode:1968sci ... 162..223k. doi:10.1126/science.162.3850.223. PMID 5675464.
  55. ^ Phillips, Lee (8. Mai 2014). "Die Zukunft des Scientific Computing: Kann eine Codierungssprache ein Gigant der 1950er Jahre top toven?". ARS Technica. Abgerufen 8. Mai 2014.
  56. ^ Pasachoff, Jay M. (April 1984). "Wissenschaftler: Forran gegen Modula-2". BYTE (Buchstabe). p. 404. Abgerufen 6. Februar 2015.
  57. ^ Galperin, Boris (1993). "26". Große Wirbelsimulation komplexer technischer und geophysikalischer Strömungen. London: Cambridgey. p. 573. ISBN 978-0-521-43009-8.
  58. ^ Brandt, Siegmund (1970). Statistische und Rechenmethoden in der Datenanalyse. North-Holland Publishing Company. S. Vorwort. ISBN 0-7204-2033-4.
  59. ^ "Interstellar 8-Track: Wie Vintage-Tech von Vintage weiter läuft". VERDRAHTET. Abgerufen 23. Dezember 2017.
  60. ^ Gaffney, P W; Wooten, J W (1. Mai 1980). Methoden zur Gewährleistung der Standardisierung der FORTRAN -Software (Bericht). Oak Ridge National Laboratory. Osti 5361454. Pfort ... Bibliothek ...
  61. ^ a b P. A. Fox (1977). "Port - eine tragbare mathematische Unterproutine -Bibliothek". Eine tragbare mathematische Unterprogrammbibliothek. Vorlesungsnotizen in Informatik. Vol. 57. S. 165–177. doi:10.1007/3-540-08446-0_42. ISBN 978-3-540-08446-4. Port ... geschrieben in (Pfort) .. Ans Forran
  62. ^ Whitten, Douglas E.; Demaine, Paul A. D. (1975). "Eine Maschine und eine Konfiguration unabhängiger FORTRAN: tragbarer FORTRAN {PFortran}". IEEE -Transaktionen auf Software -Engineering. Institut für Elektro- und Elektronikingenieure (IEEE). SE-1 (1): 111–124. doi:10.1109/tse.1975.6312825. ISSN 0098-5589. S2CID 16485156.
  63. ^ "Portabilitätsprobleme". .. diskutiert .. Portabilität von .. fortran
  64. ^ Healy, MJR (1968). "In Richtung Fortran VI". Advanced Scientific Forran durch CDC. CDC. S. 169–172. Archiviert von das Original am 5. Juli 2009. Abgerufen 10. April 2009.
  65. ^ Perlis, A. J.; Smith, J. W.; Van Zoeren, H. R. Interner Übersetzer (IT) Ein Compiler für den IBM 650 (PDF). Berechnungszentrum, Carnegie Institute of Technology.
  66. ^ "F Programmiersprache Homepage". Fortran.com. Archiviert von das Original am 9. Januar 2015. Abgerufen 19. November 2014.
  67. ^ "FORTRAN für .NET Language System". Archiviert von das Original am 18. Oktober 2014.
  68. ^ "FTN95: FORTRAN 95 für Windows". Silverfrost.com. Abgerufen 19. November 2014.
  69. ^ X3J3 Post-Meeting-Vertrieb für das Treffen im November 1976 im Brookhaven National Laboratory.
  70. ^ "Die Obliteration von O". Computer wöchentlich. 3. März 1977.
  71. ^ Regeln für die Datentypisierung (FORTRAN 77 Sprachreferenz). Abgerufen 29. September 2016.

Weitere Lektüre

Sprachstandards
Verwandte Standards
Anderes Referenzmaterial
Bücher
  • Adams, Jeanne C.; Brainerd, Walter S.; Hendrickson, Richard A.; Maine, Richard E.; Martin, Jeanne T.; Smith, Brian T. (2009). Das FORTRAN 2003 -Handbuch (1. Aufl.). Springer. ISBN 978-1-84628-378-9.
  • Akin, J. E. (2003). Objektorientierte Programmierung über Forran 90/95. Cambridge, New York: Cambridge University Press. ISBN 978-0-521-52408-7. OCLC 49906306.
  • Arjen, Markus (2012), "Moderner Fortran in der Praxis", Cambridge Univ. Press, ISBN 978-1-13908479-6.
  • Brainerd, W.S.; Goldberg, C.H.; Adams, J. C. (1996). Programmierhandbuch zu Forran 90 (3. Aufl.). Springer. ISBN 978-0-387-94570-5.
  • Brainerd, Walter (2015). Leitfaden für das Fortran 2008 -Programmieren. London: Springer. ISBN 978-1-4471-6758-7. OCLC 920530344.
  • Chapman, Stephen J. (2018). Forran für Wissenschaftler und Ingenieure (Viertes Ausgabe). New York: McGraw-Hill-Ausbildung. S. xxiv + 1024. ISBN 978-0-07-338589-1.
  • Chivers, Ian; Sleightholme, Jane (2018). Einführung in das Programmieren mit Forran (4. Aufl.). Springer. ISBN 978-3-319-75501-4.
  • Clerman, Norman (2012). Moderner Forran: Stil und Gebrauch. New York: Cambridge University Press. ISBN 978-0-521-51453-8. OCLC 776162717.
  • Curcic, Mailand (2020). Moderner Fortran: Erstellen effizienter paralleler Anwendungen. Shelter Island, NY: Manning Publications Company. ISBN 978-1-61729-528-7. OCLC 1256806439.
  • Ellis, T. M. R.; Phillips, Ivor R.; Lahey, Thomas M. (1994). Fortran 90 Programmierung (1. Aufl.). Addison Wesley. ISBN 978-0-201-54446-6.
  • Etter, D. M. (1990). Strukturierte Forran 77 für Ingenieure und Wissenschaftler (3. Aufl.). Die Benjamin/Cummings Publishing Company, Inc. ISBN 978-0-8053-0051-2.
  • Kerrigan, J. F. (1993). Migration nach Forran 90 (1. Aufl.). O'Reilly & Associates, Inc. ISBN 1-56592-049-x.
  • Kupferschmid, Michael (2002). Klassischer Forran: Programmierung für technische und wissenschaftliche Anwendungen. Marcel Dekker (CRC Press). ISBN 978-0-8247-0802-3.
  • Lorenzo, Mark Jones (2019). Abstracting the Machine: Die Geschichte der Fortran -Programmiersprache (Formelübersetzung). Unabhängig veröffentlicht. ISBN 978-1082395949.
  • Loukides, Mike (1990). UNIX für FORTRAN -Programmierer. Sebastopol, CA 95472: O'Reilly & Associates, Inc. ISBN 0-937175-51-x.{{}}: CS1 Wartung: Standort (Link)
  • McCracken, Daniel D. (1961). Ein Leitfaden für die Fortran -Programmierung. New York: Wiley. Lccn 61016618.
  • Metcalf, Michael; Reid, John; Cohen, Malcolm (2018). Moderne Forran erklärte: Integration von Forran 2018. Oxford England: Oxford University Press. ISBN 978-0-19-881188-6. OCLC 1039633256.
  • Nyhoff, Larry; Sanford Leestma (1995). FORTRAN 77 für Ingenieure und Wissenschaftler mit einer Einführung in Fortran 90 (4. Aufl.). Prentice Hall. ISBN 978-0-13-363003-9.
  • Page, Clive G. (1988). Professioneller Programmierhandbuch für FORTRAN77 (7. Juni 2005 ed.). London: Pitman. ISBN 978-0-273-02856-7. Abgerufen 4. Mai 2010.
  • Press, William H. (1996). Numerische Rezepte in Forran 90: Die Kunst des parallelen wissenschaftlichen Computers. Cambridge, Großbritannien: Cambridge University Press. ISBN 978-0-521-57439-6.
  • Ruetsch, Gregory; Fatica, Massimiliano (2013). CUDA FORTRAN für Wissenschaftler und Ingenieure (1. Aufl.). Elsevier. p. 338. ISBN 9780124169708.
  • Schlittenthemen, Jane; Chivers, Ian David (1990). Interaktiver Fortran 77: Ein praktischer Ansatz. Computer und ihre Anwendungen (2. Aufl.). Chichester: E. Horwood. ISBN 978-0-13-466764-5. Archiviert von das Original am 12. März 2014. Abgerufen 12. März 2014.
Artikel

Externe Links