Turbo Pascal - der Star unter den strukturierten Programmiersprachen

Kleine Weltgeschichte der Programmiersprachen (2): Von Lisp bis Pascal

Eigentlich schien der Rasen der Programmiersprachen spätestens um 1960 herum gemäht – denn im Grunde hatte man alles, was man für die zur Verfügung stehende Hardware brauchte. Aber mit dem, was vor allem Grace Hopper erfunden und inspiriert hatte, war das Programmieren auch zu einer Wissenschaft mit der zugehörigen Metaebene geworden. Es ging nun nicht mehr darum, pragmatisch Dialekte für neue Maschinen zu entwickeln, sondern das Programmieren an sich zu erforschen. Das führte einerseits zu der für ihre Zeit revolutionären Sprache Lisp, andererseits dazu, Programmiersprachen unabhängig von Hardware und Betriebssystemen zu machen. Erst dieser Schritt machte es möglich, dass ab Mitte der Siebzigerjahre plötzlich die Idee aufkam, jeder Besitzer eines Homecomputers könne sich seinen eigenen Kram programmieren.

Das legendäre BASIC, das schon 1964 von John G. Kemeny, Thomas E. Kurtz und Mary Kenneth Keller definiert wurde, war der Schlüssel. Einerseits erlaubte es relativ undiszipliniertes Kodieren, andererseits war es enorm leicht zu erlernen und führte rasch zu Erfolgserlebnissen. Noch einfacher, ja, vor allem kindgerecht wollten Seymour Papert und seine Kollegen das Programmieren mit Logo machen. Der gar nicht gestrenge Prof. Niklaus Wirth von der ETH Zürich strebte dagegen an, dass seine Studenten durch Pascal zu strukturiertem Programmieren gezwungen würden. Alle vier in dieser Folge vorgestellten Programmiersprachen waren stilbildend für die wilde Zeit zwischen der Ära der Minicomputer und der Blüte der PC für jedermann.

1958: McCarthys Lisp wird zur ersten Sprache der KI

Lisp-Maschine CADR im MIT-Museum
Lisp-Maschine CADR im MIT-Museum
Schon in FORTRAN waren hochkomplexe mathematische Berechnungen möglich, für die menschliche Mathematiker Monate gebraucht hätten. Grundlage war die dafür erfundene Listenprogrammierung und die dazu verwendeten formalen Ausdrücke. Ein Student von John McCarthy am MIT hatte die Idee, einen Interpreter zu basteln, der solche Ausdrücke auswerten konnte. Mit der Realisierung eines solchen Interpreters war die Programmiersprache Lisp geboren, deren Ableger noch heute, vor allem im Umfeld der Künstlichen Intelligenz, genutzt werden. Der Standard war und ist so offen, dass sich Programmierer mit Lisp quasi eigene Programmiersprachen bauen können. McCarthy & Co. waren so von dieser Methodik überzeugt, dass sie Rechner entwarfen, deren Prozessoren und Betriebssysteme auf Lisp hin optimiert waren. Die Ära der sogenannten Lisp-Maschinen dauerte von etwa 1975 bis 1993.

Insgesamt sechs Hersteller bauten solche Computer, meistens auf Basis selbstentwickelter Lisp-Chips – darunter auch Texas Instruments, Fujitsu und Xerox. Xerox, das mit dem PARC in den Siebzigerjahre bei fast allen Entwicklungen rund um persönliche Computer ganz vorn dran war, entwarfen sogar eine Version des legendären Alto als Lisp-Maschine für den Schreibtisch. Die Entwicklung profitierte in den USA enorm von staatlichen Fördermitteln rund um das SDI-Projekt (eine Reagan’sche Idee, den kalten Krieg in den Weltraum zu tragen), das wiederum auf KI setzte. Als das Projekt beerdigt wurde, starben auch die Lisp-Maschinen aus. McCarthy und die von ihm ausgebildeten KI-Expert*innen aber entwickelten die Sprache weiter. Noch heute beginnen in den USA viele Schüler und Studenten ihre Programmiererfahrungen mit dem vereinfachten Lisp-Ableger Scheme.

1964: Kemney, Kurtz und Keller erfinden BASIC, die Sprache für Nichtprogrammierer

Ein einfaches BASIC auf Sinclair-Computern
Ein einfaches BASIC auf Sinclair-Computern
Beginnen wir mit einer steilen These: Ohne BASIC hätte es Homecomputer nie gegeben. Gleichzeitig steht diese Sprache in der Traditionen ihrer Vorgänger (ausgenommen Lisp), weil sie zu den imperativen Programmiersprachen zählt. Das bedeutet, dass ein Programm aus einer Abfolge von Befehlen besteht, die dem Computer sagen, wann er was mit welchen Parametern tun soll. Und schon vom Konzept her ist BASIC ideal für schlampiges Programmieren, weil es die Definition von Variablen und Funktionen verzichtbar machte. Stattdessen setzt die Sprache, die von John G. Kemeny, Thomas E. Kurtz und Mary Kenneth Keller am Dartmouth College entwickelt wurde, auf Zeilennummern als Sprungadressen und den Befehl GOTO, der strukturiertes Programmieren überflüssig machte.

Dabei setzte sich BASIC eher zufällig durch. Etliche Studenten, die am Dartmouth College mit der Sprache in Berührung gekommen waren, gehörten zu den Pionieren der Computerbastelszene im Kalifornien der frühen Siebzigerjahre. Weil BASIC so simpel war, konnte man Interpreter bauen, die auf Rechnern mit den damals üblichen geringen Speicherkapazitäten liefen. Zudem verfügten beinahe alle Minicomputer – u.a. von DEC – damals über BASIC-Interpreter. So kam es, dass alle Unternehmen der Homecomputer-Branche – von Apple über Commodore bis Atari – auf BASIC setzten und praktisch jeder Nutzer eines persönlichen Computers zumindest über Grundkenntnisse der Sprache verfügte. Die enorme Verbreitung von Microsofts VisualBASIC sorgt bis heute dafür, dass Programme in BASIC entwickelt werden.

1966: Papert & Co. präsentieren Logo, damit Kinder das Programmieren lernen

Seymour Papert und die Grafik-Schildkröte
Seymour Papert und die Grafik-Schildkröte
Um das Jahr 1970 herum nahmen Pädagogen in den USA an, dass das Programmieren zu einer Kulturfähigkeit würde, die jeder Mensch so beherrschen sollte wie das Lesen und Schreiben. Weil aber alle verbreiteten Programmiersprachen vor allem zum Lösen mathematischer Probleme entwickelt worden waren und die Programmierung erhebliche mathematische Kenntnisse voraussetzte, arbeiteten viele IT-Theoretiker und -Praktiker an der Entwicklung von Programmiersprachen für Kinder und Menschen ohne solche Vorkenntnisse. Obwohl BASIC genau diese Bedingungen erfüllte, wurde Logo als DIE Programmiersprache für Kinder berühmt. Und das war Fluch und Segen zugleich, denn wer auch immer auf Logo zu sprechen kam, hob die sogenannte Turtle-Grafik hervor. Mit einem speziellen Satz an Befehlen konnte man mit Logo schnell und einfach recht komplexe Grafiken erzeugen.

Wer damals ernsthaft am Programmieren interessiert war, blickte eher verächtlich auf diese Sprache, obwohl sich in der Praxis immer wieder erwies, dass mit Logo schnell und einfach sehr brauchbare Anwendungen entwickelt werden konnten. Eine kurze Blüte hatte Logo dann noch einmal in der Hochzeit der Homecomputer, weil es eine Fülle kostenloser Interpreter für die unterschiedlichsten Rechner und Betriebssysteme gab.

1971: Wirth zwingt mit Pascal zum strukturierten Programmieren

Auch wenn der Begriff “Spaghetti-Code” viel später aufkam: Professor Niklaus Wirth war der Ansicht, dass unstrukturiertes Kodieren ins Verderben führt und hatte dabei schon sehr viel komplexere Programm im Sinn als sie um 1970 herum üblich waren. Also entwickelte er auf Basis von Algol eine Programmiersprache, die seine Studenten an der ETH Zürich zum strukturierten Programmieren zwingen sollte – Pascal war geboren und wurde bald Lieblingssprache aller, die sich ernsthaft an die Programmentwicklung machten. Auch unter den ersten Homecomputer-Nerds gab es schob Pascal-Fans, aber erst mit der Version TurboPascal von Borland wurde die Sprache zum Kult.

Tatsächlich war diese Sprache unerbittlich und kein bisschen dynamisch. Dafür aber war jedes Programm quasi automatisch so dokumentiert, dass jeder Pascal-Programmierer es verstehen und daran weiterarbeiten konnte. Zudem hatte man TurboPascal mit einer Fülle ständig erweiterter Innovationen ausgestattet, die es sogar möglich machten, Pascal zu einer echten objektorientierten Sprache zu machen. An schweizerischen und deutschen Schulen und Hochschulen wird Einsteiger das Programmieren gern mit Pascal beigebogen. Wer damit das strukturierte Programmieren intus hat, wird mit jeder anderen Sprache diszipliniert entwickeln können.

[Bildnachweis – LISP-Maschine: Jszigetvari via Wikimedia unter der Lizenz CC BY-SA 3.0; Seymour Papert: Matematicamente.it via Wikimedia unter der Lizenz CC BY-SA 3.0]

Comments

comments

2 Gedanken zu „Kleine Weltgeschichte der Programmiersprachen (2): Von Lisp bis Pascal“

  1. Danke für die Auflistung. Gibt es irgendwo eine grafische Darstellung –> Pfad, der Programmiersprachen?

    Und . . ist die Aussage richtig, dass es als Grundlage wichtiger ist, gut in Mathe zu sein, um dann Programmiersprachen zu leren ?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.