Zum Hauptinhalt springen
BiografieGeschichte der InformatikAnfänger

John Backus: FORTRAN, BNF und die Abkehr vom Maschinencode

Wie John Backus die Entwicklung von FORTRAN leitete, Sprachsyntax formalisierte und eine andere Art des Programmierens vorschlug.

Veröffentlicht 3. August 2026Lesezeit : 7 minVon Yann Bastien
Historisches Porträt von John Backus
Inhalt anzeigen
  1. Warum wissenschaftliche Programmierung teuer blieb
  2. FORTRAN ist ebenso sehr Compiler wie Sprache
  3. Eine kollektive Leistung verändert die Softwareökonomie
  4. Die Grammatik einer Sprache beschreiben
  5. Das Modell infrage stellen, das er selbst mit verbreitet hatte
  6. Programme komponieren statt jeden Zustand verwalten
  7. Ein Vermächtnis weit über FORTRAN hinaus
  8. Zeitleiste
  9. Häufig gestellte Fragen
  10. Hat John Backus FORTRAN allein entwickelt?
  11. Warum war der erste FORTRAN-Compiler so wichtig?
  12. Hat Backus die BNF allein erfunden?
  13. Wird FORTRAN noch verwendet?
  14. Warum kritisierte Backus imperative Programmierung?
  15. Welche Verbindung besteht zwischen Backus und Grace Hopper?

Anfang der 1950er Jahre bedeutete die Programmierung einer wissenschaftlichen Berechnung oft, jede Formel in eine lange Folge maschinenspezifischer Anweisungen zu übersetzen. John Backus wollte diese mechanische Arbeit beseitigen. Das von ihm bei IBM geleitete Team schuf FORTRAN, eine Sprache, in der Formeln in erkennbarer Form geschrieben und anschließend automatisch übersetzt werden konnten.

Die Herausforderung bestand nicht nur darin, eine lesbarere Notation zu entwerfen. Wissenschaftler wussten, wie man Assembler von Hand optimiert, und misstrauten einem Programm, das an ihrer Stelle Code erzeugte. Um akzeptiert zu werden, musste der FORTRAN-Compiler Programme erzeugen, die beinahe so schnell waren wie die von menschlichen Experten.

Backus widmete sich später zwei weiteren Fragen: Wie lässt sich die Syntax einer Sprache präzise beschreiben, und wie kann man sich von einem Programmiermodell lösen, das auf fortlaufenden Änderungen des Speichers beruht?

Warum wissenschaftliche Programmierung teuer blieb

John Warner Backus wurde 1924 in Philadelphia geboren. Nach einem unregelmäßigen Bildungsweg und Militärdienst wandte er sich der Mathematik zu und erwarb 1950 einen Master an der Columbia University.

Im selben Jahr besuchte er IBM und sah den Selective Sequence Electronic Calculator. Ein spontanes Gespräch führte zu seiner Einstellung. Bald arbeitete er an mathematischen Programmen und an Speedcoding, einem System, das Berechnungen auf dem IBM 701 vereinfachte.

Speedcoding steigerte die Produktivität, verlangsamte durch seine Interpretation jedoch die Ausführung. Deshalb schrieben Programmierer weiterhin Maschinencode oder Assembler – mit hohem Zeitaufwand und vielen Fehlermöglichkeiten.

1953 schlug Backus IBM ein ehrgeizigeres System vor: Benutzer sollten Formeln in einer mathematisch vertrauten Schreibweise formulieren, während ein Compiler effizienten Code für den IBM 704 erzeugte.

FORTRAN ist ebenso sehr Compiler wie Sprache

Backus stellte ein Team aus Mathematikern, Programmierern und Hardwareexperten zusammen. Dazu gehörten Harlan Herrick, Irving Ziller, Peter Sheridan, Roy Nutt, Robert Nelson und Lois Haibt. Diese Vielfalt war entscheidend: Sprache, Optimierung und Tests ließen sich nicht sinnvoll von einer einzelnen Person bewältigen.

FORTRAN steht für Formula Translation. Die Sprache erlaubte arithmetische Ausdrücke, Schleifen und Verzweigungen, ohne die Codes des IBM 704 direkt zu bearbeiten. Der Programmierer beschrieb die gewünschte Berechnung; der Compiler wählte die Maschinenbefehle.

Dabei musste die Leistung erhalten bleiben. Das Team entwickelte Analyse- und Optimierungstechniken für Berechnungsreihenfolge und Registerverwendung. Die Entwicklung des ersten Compilers dauerte mehrere Jahre und ergab für damalige Verhältnisse ein außergewöhnlich großes Programm.

Als FORTRAN 1957 ausgeliefert wurde, nahm seine Effizienz dem Assembler eines seiner wichtigsten Argumente. Wissenschaftler konnten sich stärker auf mathematische Modelle und weniger auf Prozessor-Details konzentrieren. Die Entwicklungszeit sank, und die Sprache ließ sich nach und nach auf andere Maschinen übertragen.

Eine kollektive Leistung verändert die Softwareökonomie

Backus als alleinigen Schöpfer von FORTRAN zu bezeichnen wäre irreführend. Er schlug das Projekt vor, leitete das IBM-Team und prägte die Konzeption, doch Sprache und Compiler waren Gemeinschaftsarbeit.

Seine Rolle war dennoch entscheidend, weil er zwei schwer vereinbare Ziele zusammenhielt: Code näher an die Mathematik zu bringen und gleichzeitig Geschwindigkeit zu bewahren. Der Erfolg bewies, dass Hochsprachen für reale Berechnungen taugen konnten.

FORTRAN verbreitete sich in Forschung, Industrie und Hochschulen. Wissenschaftlicher Code konnte nun länger leben als der Computer, für den er ursprünglich geschrieben worden war. Spätere Versionen verbesserten Portabilität und Strukturierung und bewahrten zugleich einen großen Bestand numerischer Software.

Die Geschichte von FORTRAN verfolgt diese Entwicklung. Backus’ Biografie erklärt das ursprüngliche Problem: automatische Übersetzung für Menschen akzeptabel zu machen, die nur handgeschriebenem Code Effizienz zutrauten.

Die Grammatik einer Sprache beschreiben

Nach FORTRAN beteiligte sich Backus an den internationalen Diskussionen über ALGOL 58 und ALGOL 60. Die Beteiligten brauchten eine eindeutige Beschreibung dessen, welche Symbolfolgen gültige Programme bilden.

Natürliche Sprache reichte dafür nicht aus. Backus schlug eine formale Notation vor, in der syntaktische Kategorien durch Ersetzungsregeln definiert werden. Peter Naur passte die Methode für den ALGOL-60-Bericht an. Sie wurde als Backus-Naur-Form, kurz BNF, bekannt.

BNF trennt zwei Fragen: Die Syntax legt die erlaubte Form fest; die Implementierung entscheidet, wie diese Form analysiert und ausgeführt wird. Diese Trennung hilft Compilerbauern, Standardisierungsgremien und Lesern von Spezifikationen. Varianten der BNF werden bis heute zur Dokumentation von Sprachen, Formaten und Protokollen verwendet.

Das Modell infrage stellen, das er selbst mit verbreitet hatte

FORTRAN verbesserte die imperative Programmierung grundlegend: Ein Programm liest und verändert Werte im Speicher, Anweisung für Anweisung. Backus kam jedoch zu der Überzeugung, dass dieses Modell zu eng an die Struktur speicherprogrammierter Computer gebunden blieb.

In seiner Turing-Award-Rede von 1977, Can Programming Be Liberated from the von Neumann Style?, kritisierte er den von ihm so genannten von-Neumann-Flaschenhals. Programme verschieben fortwährend Werte zwischen Prozessor und Speicher, während das Denken über sie von einer Folge von Zustandsänderungen abhängt.

Backus stellte FP vor, ein System auf Grundlage der Funktionskomposition. Statt jede Änderung einzeln zu beschreiben, kombiniert ein Programm Transformationen. Eigenschaften eines Programms sollten dadurch leichter mathematisch untersucht werden können.

FP ersetzte imperative Sprachen nicht. Seine Bedeutung liegt vor allem darin, dass der Leiter eines ihrer ersten großen Erfolge zugleich ihre Grenzen sichtbar machte. Diese Kritik berührt eine andere Tradition, die mit John McCarthys Lisp bereits Funktionen und Rekursion ins Zentrum stellte.

Programme komponieren statt jeden Zustand verwalten

Backus wollte nicht lediglich Funktionen zu einer imperativen Sprache hinzufügen. In FP werden Funktionen durch funktionale Formen kombiniert: Komposition, Paarbildung, Anwendung einer Operation auf alle Elemente oder Reduktion einer Folge auf einen Wert.

Soll etwa die Summe der Quadrate einer Zahlenliste berechnet werden, legt eine imperative Lösung eine Summe an, durchläuft die Liste und aktualisiert den Zustand. Eine kompositionale Beschreibung formuliert dagegen Transformationen: jedes Element quadrieren und anschließend die Ergebnisse addieren. Beziehungen stehen im Vordergrund, nicht die detaillierte Reihenfolge von Zuweisungen.

Backus hoffte, Programme dadurch mit algebraischen Regeln untersuchen zu können. Diese Idee nahm moderne Verfahren für Datenfluss, Optimierung und Parallelisierung vorweg, auch wenn FP selbst wenig Verbreitung fand.

Ein Vermächtnis weit über FORTRAN hinaus

Backus erhielt 1977 den Turing Award für seine Beiträge zu Hochsprachen, Compilersystemen und Sprachspezifikationen. Er blieb bis zu seinem Ruhestand 1991 IBM Fellow und starb 2007.

Sein Werk verbindet drei Ebenen: FORTRAN zeigt, dass eine abstraktere Sprache effizienten Code erzeugen kann. BNF ermöglicht eine präzise Definition der Sprachform. FP fragt schließlich, ob die dominierende Art, Programme zu schreiben, überhaupt die beste ist.

Moderne Compiler führen die erste Frage fort, formale Grammatiken die zweite und funktionale Programmierung die dritte. Backus brachte Code also nicht nur näher an die Mathematik; er hinterfragte nacheinander Übersetzung, Beschreibung und Struktur von Programmen.

Zeitleiste

  • 1924: Geburt von John Warner Backus in Philadelphia.
  • 1950: Mathematik-Master an der Columbia University und Eintritt bei IBM.
  • Anfang der 1950er: Entwicklung von Speedcoding für den IBM 701.
  • 1953: Vorschlag eines Formelübersetzungssystems für den IBM 704.
  • 1954: Bildung des FORTRAN-Teams.
  • 1957: Auslieferung des ersten FORTRAN-Compilers.
  • 1958–1960: Mitarbeit an ALGOL und der späteren BNF.
  • 1963: Ernennung zum IBM Fellow.
  • 1977: Turing Award und Vortrag über die Grenzen des von-Neumann-Stils.
  • 1978: Veröffentlichung des Vortrags und des FP-Systems in den Communications of the ACM.
  • 1991: Ruhestand bei IBM.
  • 2007: Tod in Ashland, Oregon.

Häufig gestellte Fragen

Hat John Backus FORTRAN allein entwickelt?

Nein. Er schlug das Projekt vor und leitete das IBM-Team, aber Sprache und Compiler waren eine kollektive Leistung.

Warum war der erste FORTRAN-Compiler so wichtig?

Eine lesbarere Sprache wäre kaum angenommen worden, wenn ihre Programme deutlich langsamer als Assembler gewesen wären. Die Optimierungen zeigten, dass automatische Übersetzung Produktivität und Leistung verbinden konnte.

Hat Backus die BNF allein erfunden?

Er schlug die ursprüngliche Notation für ALGOL vor. Peter Naur passte sie für den ALGOL-60-Bericht an. Der Name Backus-Naur-Form würdigt beide Beiträge.

Wird FORTRAN noch verwendet?

Ja. Moderne Versionen sind weiterhin im wissenschaftlichen Rechnen und in langlebigen numerischen Bibliotheken verbreitet.

Warum kritisierte Backus imperative Programmierung?

Er hielt Programme, die um fortlaufende Speicheränderungen organisiert sind, für schwer kombinierbar und analysierbar. FP untersuchte stattdessen die Komposition von Funktionen.

Welche Verbindung besteht zwischen Backus und Grace Hopper?

Beide Teams wollten Programmierer vom Maschinencode lösen. FORTRAN zielte zunächst auf wissenschaftliches Rechnen, FLOW-MATIC und COBOL vor allem auf kommerzielle Datenverarbeitung.

War dieser Artikel hilfreich?

Quellen und Referenzen

  1. 1.IBM - John Backus
  2. 2.Computer History Museum - John Backus
  3. 3.IBM - The FORTRAN Automatic Coding System
  4. 4.ACM - Can Programming Be Liberated from the von Neumann Style?
  5. 5.Library of Congress - John W. Backus Papers

Sammlung

Programmiersprachen

2 / 26

  1. 01Grace Hopper: von frühen Compilern zu COBOL
  2. 02John Backus: FORTRAN, BNF und die Abkehr vom Maschinencode
  3. 03Dennis Ritchie: die Sprache C im Herzen von Unix
  4. 04FORTRAN: der Beweis, dass ein Compiler mit Assembler konkurrieren kann
  5. 05Die Sprache C: Systeme portabel machen, ohne die Maschine zu verbergen
  6. 06Niklaus Wirth: von Pascal bis Oberon – Entwurf durch Einfachheit
  7. 07Bjarne Stroustrup: C++ entwerfen, ohne auf Leistung zu verzichten
  8. 08Pascal: Programmieren lernen, indem Struktur sichtbar wird
  9. 09C++: von C with Classes zum modernen C++
  10. 10Objektorientierte Programmierung: Objekte, Nachrichten und wiederverwendbare Abstraktionen
  11. 11Guido van Rossum: Python für lesbaren Code entwickeln
  12. 12Brendan Eich: JavaScript vom Netscape-Prototyp zum Webstandard
  13. 13James Gosling: der Ingenieur hinter Java
  14. 14Python: Lesbarkeit, Batteries included und ein globales Ökosystem
  15. 15Java: einmal schreiben, überall ausführen
  16. 16JavaScript: die Sprache, die das Web interaktiv machte
  17. 17Ken Thompson: von Unix bis Go, Einfachheit als Methode
  18. 18John McCarthy: Lisp und die Idee, mit Symbolen zu programmieren
  19. 19Alan Kay: Smalltalk und der Computer als persönliches Medium
  20. 20Barbara Liskov: Abstraktion als Grundlage modularer Software
  21. 21Robin Milner: ML, rechnergestützte Beweise und Sprachen der Interaktion
  22. 22Brian Kernighan: AWK, Unix und die Kunst, Code zu erklären
  23. 23Anders Hejlsberg: von Turbo Pascal zu C# und TypeScript
  24. 24Larry Wall: Perl, die Sprache, die die Werkzeuge des Internets verband
  25. 25Yukihiro Matsumoto: Ruby und das Glück der Programmierenden
  26. 26Rasmus Lerdorf: PHP und die Demokratisierung des dynamischen Webs
BiografieGeschichte der InformatikAnfänger

Grace Hopper: von frühen Compilern zu COBOL

Wie Grace Hopper dazu beitrug, Programmierung verständlicher zu machen, indem lesbarere Anweisungen in Maschinencode übersetzt wurden.

3. August 20265 min