Skip to main content

FORTRAN

Was ist Fortran?

Fortran ist eine der ältesten Programmiersprachen. Sie gilt als die erste “höhere” Programmiersprache und wurde 1953 von John W. Backus, der als Programmierer bei IBM tätig war, entworfen. Im Vergleich zu anderen späteren Programmiersprachen galt Fortran von jeher als eine mathematisch-naturwissenschaftlich orientierte Programmiersprache. Sie sollte das Programmieren von numerischen Berechnungen erleichtern und wurde in den Wissenschaften, in der Forschung und in technischen Bereichen bevorzugt eingesetzt. Der Name Fortran setzt sich zusammen aus den Worten “Formula Translation”. Bis zum Jahr 2008 wurden neun Versionen der Programmiersprache entwickelt. Bis zu der fünften Version FORTRAN-77 wurde der Name der Programmiersprache in Großbuchstaben geschrieben.

Der geschichtliche Hintergrund

1954 wurde nach dem ersten Entwurf der Programmiersprache ein zunächst für ein halbes Jahr geplantes Projekt von IBM gestartet. Die Arbeit an der Erstellung der Programmiersprache begann mit dem Bau eines Compilers. Dieser Compiler sollte den Quellcode in eine maschinenlesbare Sprache übersetzen, um somit ein lauffähiges Programm erzeugen zu können. Im Herbst 1954 gelang es einem anderen Programmierer bei IBM, das erste Programm der neuen “Hochsprache” auf einem IBM-Computer laufen zu lassen. Bis zur Marktreife der Programmsprache und der Fertigstellung des leistungsfähigen Compilers dauerte es noch bis 1957. Für den Programmierer John W. Backus war es ein wichtiges Leistungskriterium des neu entwickelten Compilers und der Programmiersprache, dass beides ähnlich schnell arbeiten konnte wie die bislang zur Programmierun eingesetzten Assembler-Maschinensprachen. Ab 1957 wurden von IBM die IBM-704-Computer gemeinsam mit der Programmiersprache und deren Compiler verkauft und ausgeliefert.

Kurzer Überblick über die verschiedenen Versionen von Fortran

Die Urversion der Programmiersprache FORTRAN-I wurde insgesamt acht Mal erweitert und folgendermaßen bezeichnet als:

  • Version II
  • Version IV
  • Version 66
  • Version 77
  • Version 90
  • Version 95
  • Version 2003 und Version 2008.

ISO-Standard ab der Version 66

Die “Internationale Organisation für Normung” mit Sitz in Genf vergibt diesen Standard. Die Einhaltung der ISO-Norm gilt allgemein als ein wichtiges Qualitätskriterium. Mit Ausnahme elektrischer und elektronischer Produkte werden in allen Bereichen von der ISO international gültige Standards erarbeitet. Der erfolgreichen Zertifizierung vorausgehend erfolgen umfangreiche Prüfungen, die einige Zeit in Anspruch nehmen können. So kam bestimmte Versionen der Programmiersprache erst später als geplant auf den Markt. So wurde die neue Standardisierung der Version 77 aus dem Jahre 1978 mehrere Male verschoben und ein neuer Standard konnte erst mit der Version 90 im April 1991 umgesetzt werden.

Die Dialekte F, Ratfor und HPF als Weiterentwicklungen für verschiedene Zwecke

Weiterhin sind sogenannte Dialekte der Programmiersprache entstanden: F und Ratfor. F glt als sogenanntes Subset von den Versionen 90 und 95. Der Quellcode lässt sich auf den Compilern dieser Versionen immer verarbeiten. Aufgrund restriktiver Elemente von F wurde diese Abwandlung besonders für Lernzwecke eingesetzt, da F etwas einfacher zu erlernen ist als eine vollständige Version. Ratfor steht für Rational Fortran und ist größtenteils eine Vermischung oder auch Zusammenführung von Codeelementen der Programmiersprache Fortran mit der Programmiersprache C. Der Entwickler von Ratfor war Brian W. Kernighans. Programmierer waren von der damals neuen Programmiersprache C sehr angetan, da diese viele Erleichterungen für die Programmierer mit sich brachte. Aus diesem Hype um die Programmiersprache C entstand die Idee, eine Hybrid-Sprache aus dem gängig eingesetzten Fortran und C zu bilden. Fortran-Programme sollten mit einer C-Syntax programmiert werden können. Dieser Quellcode von Raftor wurde dann mithilfe eines Präcompilers in reines Fortran übersetzt und weiter in Maschinensprache kompiliert, was natürlich Zeitverluste und eine erhöhte Fehleranfälligkeit bei der Kompilierung mit sich brachte. HPF oder auch High Performance Fortran ist eine weitere Subsprache von Fortran.

Normierung der Programmiersprache nach ANSI-Standard

Schon früh wurden die Versionen der Programmiersprache mit der sogenannten ANSI-Normierung versehen. Dieses Zertifikat für einen gewissen Standard wurde von dem American National Standards Institute (ANSI) aus Washington vergeben und beschreibt in die in den Vereinigten Staaten gültigen Standards. Das American National Standards Institute ist einziges Mitglied in der Internationalen Organisation für Normung (ISO). Viele der ANSI-Standards wurden zum ISO-Standard erweitert oder übertragen.

Das klassische erste Programm in Fortran “Hello World”

Beispiel

1 program hello
2 write(*,*) ‘Hello World!’
3 end program hello

Die Entwicklung der Programmiersprache Fortran zu einer leistungsfähigen modernen Sprache

Die stetige Weiterentwicklung hat aus der ersten höheren Programmiersprache eine leistungsfähige moderne imperative, prozedurale sowie objektorientierte Sprache werden lassen, die noch heute vielfach eingesetzt wird und auf den Stundenplänen von Informatikstudenten und Studenten anderer Fachbereiche mit Nebenfach Informatik steht. Sie gilt als eine nicht sehr einfach zu erlernende Sprache, da die Sprachelemente, Routinen und der Umfang sehr komplex sind. Aber dennoch lohnt sich das Erlernen, da sie noch heute vielfältige Anwendung in wissenschaftlichen, naturwissenschaftlichen, mathematischen und technischen Bereichen Anwendung findet. Auf nahezu jedem Hochleistungsrechner oder dazugehörigen Workstations sind Programme in Fortran vorhanden oder wird weiterhin mit der Programmiersprache gearbeitet. Ein weiteres wichtiges Kriterium für den Einsatz der modernen Versionen ist die erhalten gebliebene Rückwärtskompatibilität zu den Vorgängerversionen. Ratfor wurde in den Versionen Ratfor 77 und Ratfor 90 entwickelt.

Was bedeutet prozedurale Programmiersprache?

Unter prozeduraler Programmierung wird ein bestimmter Programmierstil verstanden. Die Bedeutung des Begriffes wird nicht immer einheitlich verwendet. So kann darunter die imperative Programmierung oder die strukturierte Programmierung verstanden werden. Bei der imperativen Programmierung folgen die Programmbefehle aufeinander. Mithilfe der strukturierten Programmierung können Programmteile in überschaubare Einheiten zerlegt werden. Es werden verschiedene aus der strukturierten Programmierung bekannten Kontrollstrukturen zur Übersichtlichkeit des Programmes in die prozedurale Programmierung übernommen. Wiederholungen im Quellcode können durch diese Art der Programmierung in bestimmten definierten Unterteilungen vermieden werden.

Was bedeutet imperative Programmiersprache?

Wie schon bei der prozeduralen Programmierung beschrieben, arbeiten imperative Programmiersprachen oder besser: Programmierstile aufeinanderfolgende Befehle ab. Die Programmbefehle legen fest, in welcher Reihenfolge die Anweisungen vom Computer ausgeführt werden sollen. Diese Art des Programmierens gilt als der klassische und erste angewendete Programmierstil an sich. Lochkarten-Programmierung, Assemblersprachen (maschinennahe Programmiersprachen) Fortran, Algol aber auch Programmiersprachen, wie Cobol, Pascal, Ada und die ersten Versionen von C bedienten sich der imperativen-prozeduralen Programmierung. Andere Bezeichnungen für den imperativen Programmierstil sind zustandsorientierte Programmierung und algorithmische Programmierung. Moderne imperative Programmiersprachen, wie die neueren Versionen von Fortran bedienen sich auch einer modularen Programmierung. Diese strukturierte Programmierung in Modulen bringt viele Vorteile für die Erstellung von größeren Programmen mit sich. Modulare Programmierung ermöglicht das Programmieren und Kompilieren von Teilprogrammen. Dies vereinfacht beispielsweise auch die Arbeit von mehreren Programmierern an einem großen Software-Projekt.

Was bedeutet objektorientierte Programmiersprache?

Die objektorientierte Programmierung bedient sich mit definierten Klassen und in diesen Klassen eingebetteten Objekten. Veranschaulicht werden kann eine objektorientierte Programmierung zum Beispiel folgendermaßen

Als Klasse werden zum Beispiel Personen mit dem Namen Sabine definiert. Den einzelnen in dieser Klasse enthaltenen Objekten können nun unterschiedliche Attribute zugeordnet werden

Klassen

Sabine 1 – blonde Haare, blaue Augen, Alter 35, Beruf Krankenschwester
Sabine 2 – braune Haare, graue Augen, Alter 56, Beruf Programmiererin
Sabine 3 – rote Haare, grüne Augen, Alter 22, Beruf Marketing-Studentin

Bei der objektorientierten Programmierung ist es dann möglich verschiedene Anweisungen auszuführen, ohne die Objekte in ihren Eigenschaften und Attributen jedes Mal neu definieren, Speicherplätzen zuweisen, verändern oder anderweitig beeinflussen zu müssen. Den Objekten werden die Attribute eines bestimmten systemischen Wirklichkeitsausschnittes in dem sich das spätere Programm befinden soll zugewiesen. Mithilfe von bestimmten Methoden können dann bestimmte Operationen an den Objekten ausgeführt werden, wie beispielsweise auch das Senden oder Empfangen von bestimmten Daten. Diese sorgen dann für automatisierte Veränderungen bestimmter Attribute oder einer bestimmten Menge der gesamten vorab definierten Objekte. Einzelne Programmbefehle können bei der objektorientierten Programmierung auf eine große Menge an Objekten Einfluss nehmen. Es wird im Vorfeld der Programmierung eine Art Architektur und Objektstruktur für das spätere Programm entwickelt. Die objektorientierte Programmierung gilt zwar zunächst als etwas schwieriger zu erlernen, bietet aber durch ihre Zugriffsmöglichkeiten auf bestimmte Datenbanken, auch Bibliothek einer Programmiersprache genannt, einen äußerst effektiven und effizienten Programmierstil. Das objektorientierte Programmieren ermöglicht auch die Anwendung von Polymorphie und Vererbung als höhere Programmierkonzepte.

Für die Objekte und Attribute aus unserer definierten Beispiels-Klasse “Sabine” könnten nun bestimmte Anweisungen gegeben werden, wie beispielsweise “Kennzeichne alle Objekte Sabine, die beruflich mit der Programmiersprache Fortran konfrontiert sein könnten” oder Ähnliches. Bei der objektorientierten Programmierung ist es beispielsweise auch möglich, innerhalb der Objekte Strukturen anzulegen, die nicht von jedem sofort gesehen werden können. So könnten zum Beispiel den Objekten Sabine 2 und Sabine 3 Kenntnisse in verschiedenen Programmiersprachen, wie zum Beispiel Fortran, unsichtbar zugeordnet sein. Dieses ermöglicht auch die Programmierung mit bestimmten Zugriffs- und Leserechten für bestimmte Personenkreise oder den Ausschluss von bestimmten Personen.

Entwicklungsumgebungen und Compiler für die Programmiersprache

Für Compiler und Entwicklungsumgebungen der Programmiersprache existieren Versionen kommerzieller Anbieter sowie auch freie Entwicklungswerkzeuge. Fortran-Compiler sind für PCs mit installierten Windowsbetriebssystemen, PCs mit installierten Unix-Systemen oder Workstations unter Unix sowie Macintosh vorhanden. Einige der kommerziellen und auch freien Compiler werden von den Herstellern noch gewartet und es existieren auch Hilfen und Supportfunktionen.

Kommerzielle Hersteller von Compilern sind:

  • IBM
  • SUN
  • HP
  • Intel

sowie Anbieter, die sich auf bestimmte Softwarebereiche spezialisiert haben:

  • Salford
  • PGI
  • Absof
  • Lahey
  • NAG

Frei erhältliche Compiler sind

  • in der GNU Compiler Collection (GCC) für alle Betriebssysteme enthalten
  • die Compiler für die Version 95: GNU Fortran und G95
  • g77 für FORTRAN-77

weiterhin sind Compiler für die Programmiersprache auf den freien Entwicklungsumgebungen Eclipse und OpenWatcom enthalten.

Die Bibliotheken von Fortran und weitere Entwicklungswerkzeuge

Fortran kann auf sehr umfangreiche Bibliotheken und weitere Entwicklungswerkzeuge zugreifen. Bibliotheken sind in

  • Funktionssammlungen für Mathematik und Statistik
  • Sammlungen, die technisch-wissenschaftliche Grafik und Sammlungen, die sonstige Grafik enthalten
  • sowie weitere Bibliotheken, beispielsweise zur Unterstützung der Konsolengestaltung, zum Erhalten und Versenden von E-Mails, zum Erzeugen und Lesen von Excel-Tabellen oder für den Zugriff auf Betriebssystemfunktionen von Windows sowie Weitere,

unterteilt. Weiterhin existieren umfangreiche Funktionssammlungen für

  • die Menü- und Maskengestaltung
    sowie den Zugriff auf das System

Zusätzlich gehören noch Tools zur Wartung des Quellcodes zu der Vielzahl an Entwicklungswerkzeugen für die Programmiersprache. Auflistungen und weiterführende Informationen sind auf der deutschen Fortran Website http://www.fortran.de/ zu erhalten.

Wo kann die Programmiersprache erlernt werden?

Für das Erlernen der Programmiersprache stehen vielfältige Möglichkeiten zur Verfügung. Für Autodidakten und schon erfahrene Programmierer, die ihre Programmierkenntnisse mit dieser Sprache erweitern oder auffrischen möchten, existiert eine große Zahl an Literatur. Im Internet sind an vielen Orten freie Ressourcen zum Erlernen der Programmiersprache vorhanden, wie beispielsweise Video-Workshops auf Youtube und anderen Kanälen. Unterrichtet wird die Sprache, die aktuell noch vielfältigen Einsatz findet, an Universitäten und Hochschulen als Bestandteil von informationstechnischen Studiengängen. Weiterhin existiert eine Vielzahl an kommerziellen Angeboten von Unternehmen an Schulungen und Seminaren.

Sie haben noch Fragen?

Kontaktieren Sie uns