Zum Hauptinhalt springen
BiografieGeschichte der InformatikAnfänger

John McCarthy: Lisp und die Idee, mit Symbolen zu programmieren

Wie John McCarthy Lisp zur Darstellung von Denken entwarf und Listen, Rekursion und sogar Code selbst zu manipulierbaren Objekten machte.

Veröffentlicht 24. August 2026Lesezeit : 5 minVon Yann Bastien
Porträt von John McCarthy in Stanford im Jahr 2006
Inhalt anzeigen
  1. Denken statt nur Zahlen darstellen
  2. Warum Listen zum Kern von Lisp wurden
  3. Wenn Code dieselbe Form wie Daten besitzt
  4. Dynamischen Speicher automatisch verwalten
  5. Eine Sprache als Gemeinschaftsarbeit
  6. Timesharing verändert die Beziehung zur Maschine
  7. Was Lisp modernen Sprachen hinterlassen hat
  8. Zeitleiste
  9. Häufig gestellte Fragen
  10. Hat John McCarthy den ersten Lisp allein programmiert?
  11. Warum verwendet Lisp so viele Klammern?
  12. Ist Lisp die erste funktionale Sprache?
  13. Welche Beziehung besteht zwischen Lisp und KI?
  14. Wird Lisp noch verwendet?

Mitte der 1950er Jahre waren Computer bereits hervorragend im numerischen Rechnen. John McCarthy wollte ihnen eine andere Aufgabe geben: Ideen als Symbole darstellen, Schlussfolgerungen konstruieren und Ausdrücke verarbeiten, deren Größe nicht im Voraus bekannt war.

Aus diesem Ziel entstand Lisp. Statt ein Programm nur als feste Befehlsfolge zu behandeln, stellt Lisp Code mit denselben Strukturen dar wie Daten. Ein Programm kann dadurch Ausdrücke untersuchen, verändern und neue erzeugen. Diese Eigenschaft beeinflusste funktionale Programmierung, interaktive Systeme und viele spätere Sprachen.

McCarthy verband dies mit einer zweiten Vision: Timesharing, bei dem mehrere Menschen gleichzeitig interaktiv mit einem Computer arbeiten. Lisp und Timesharing sollten den Rechner vom Stapelverarbeiter zum experimentellen Partner machen.

Denken statt nur Zahlen darstellen

John McCarthy wurde 1927 in Boston geboren und wuchs hauptsächlich in Los Angeles auf. Er studierte Mathematik am California Institute of Technology und promovierte 1951 in Princeton.

Hochsprachen wie FORTRAN waren vor allem für Zahlen geschaffen. McCarthy interessierte sich dagegen für Wörter, logische Regeln, Beweise und Ausdrucksbäume. 1955 beteiligte er sich am Vorschlag für das Dartmouth-Sommerprojekt und verwendete dort den Ausdruck artificial intelligence für ein neues Forschungsgebiet.

Um diese Ideen zu untersuchen, brauchte er eine Sprache, die Symbole so direkt behandelte wie FORTRAN Zahlen.

Warum Listen zum Kern von Lisp wurden

Ein Gedankenausdruck lässt sich als Ausdruck aus weiteren Ausdrücken darstellen. Lisp – der Name stammt von list processing – macht deshalb die Liste zur grundlegenden Struktur. Eine Liste kann Zahlen, Namen oder weitere Listen enthalten.

Diese Struktur begünstigt Rekursion: Eine Funktion verarbeitet einen Teil und ruft sich für den Rest erneut auf, bis ein einfacher Fall erreicht ist. Lisp erfand Rekursion nicht, machte sie aber zu einer natürlichen Art, verschachtelte Strukturen zu bearbeiten.

McCarthys Artikel von 1960, Recursive Functions of Symbolic Expressions and Their Computation by Machine, beschrieb Lisp als kleines Regelsystem, das allgemeine Berechnungen ausdrücken konnte.

Wenn Code dieselbe Form wie Daten besitzt

Die vielen Klammern von Lisp wirken zunächst ungewöhnlich. Ihre Regelmäßigkeit schafft jedoch eine entscheidende Eigenschaft: Ein Codeausdruck ist selbst eine Liste. Code und Daten besitzen damit eine gemeinsame Repräsentation.

Diese Homoikonizität erlaubt es Programmen, Code als Daten zu empfangen, zu analysieren und umzuschreiben. Lisp-Makros nutzen das, um die Sprache für neue Anwendungsgebiete zu erweitern.

McCarthy hatte zunächst eine konventionellere M-Expression-Notation vorgesehen. Als Steve Russell erkannte, dass McCarthys beschriebene Evaluierungsfunktion direkt programmiert werden konnte, wurden die geklammerten S-Expressions selbst zur ausführbaren Syntax.

Dynamischen Speicher automatisch verwalten

Lisp-Listen entstehen und verschwinden während der Ausführung. Manuelle Freigabe jeder Struktur hätte Programme kompliziert und fehleranfällig gemacht. Deshalb führte Lisp Garbage Collection ein: Das System ermittelt, welche Objekte noch erreichbar sind, und gewinnt den Speicher der übrigen zurück.

Automatische Speicherverwaltung kostet Rechenzeit, reduziert aber viele Fehler und erleichtert dynamische Datenstrukturen. Java, JavaScript, Python, Go und zahlreiche andere Sprachen verwenden heute Varianten dieses Prinzips.

Eine Sprache als Gemeinschaftsarbeit

McCarthy definierte die zentralen Konzepte, aber Lisp wurde durch viele Forscher praktisch nutzbar. Steve Russell programmierte den ersten Evaluator, Daniel Edwards arbeitete an der Speicherbereinigung, Timothy Hart und Michael Levin an einem frühen Compiler.

Lisp wurde schnell zu einer Familie: Lisp 1.5, Maclisp, Interlisp, Scheme, Common Lisp, Emacs Lisp und Clojure verfolgen unterschiedliche Ziele. Diese Vielfalt zeigt zugleich Stärke und Fragmentierung einer Sprache, deren Kern leicht erweitert werden kann.

Timesharing verändert die Beziehung zur Maschine

Computer der 1950er Jahre arbeiteten häufig im Batchbetrieb. Benutzer reichten Karten oder Bänder ein und warteten auf Ergebnisse. McCarthy setzte sich für allgemeines Timesharing ein: Der Computer wechselt schnell zwischen Benutzern, sodass jeder interaktiv arbeiten kann.

Das passte besonders gut zu Lisp. Ein Interpreter kann einen Ausdruck lesen, auswerten und das Ergebnis anzeigen – die später als REPL bekannte Arbeitsweise. Programmieren wird dadurch zu einem fortlaufenden Experiment.

McCarthy förderte diese Vision am MIT und später am Stanford Artificial Intelligence Laboratory. Sprache, Terminals, Netzwerke und Forschung entwickelten sich dort gemeinsam.

Was Lisp modernen Sprachen hinterlassen hat

Lisp ist heute nicht mehr die einzige Sprache der KI-Forschung, doch viele seiner Ideen sind allgegenwärtig: Funktionen als Werte, Closures, Rekursion, automatische Speicherverwaltung, Makros und interaktive Umgebungen.

John Backus verteidigte später ebenfalls funktionale Komposition. Guido van Rossum integrierte funktionale Werkzeuge in Python. Brendan Eich griff bei JavaScript auf Ideen aus Scheme zurück, obwohl dessen äußere Syntax eher an C erinnert.

McCarthy starb 2011. Sein Vermächtnis liegt nicht in der Behauptung, Maschinen hätten allgemeine Intelligenz erreicht, sondern in der präziseren Leistung, symbolische Ausdrücke so darstellbar zu machen, dass Programme, Regeln und Code mit denselben Mechanismen verarbeitet werden können.

Zeitleiste

  • 1927: Geburt in Boston.
  • 1951: Mathematik-Promotion in Princeton.
  • 1955: Dartmouth-Vorschlag und Verwendung des Ausdrucks „artificial intelligence“.
  • 1956: Dartmouth-Workshop.
  • 1958: erste Lisp-Formulierungen am MIT.
  • 1959: Veröffentlichung eines Vorschlags für allgemeines Timesharing.
  • 1960: Veröffentlichung des grundlegenden Lisp-Artikels.
  • 1962: Wechsel nach Stanford.
  • 1965: Gründung des Stanford Artificial Intelligence Laboratory mit Lester Earnest.
  • 1971: Turing Award.
  • 2011: Tod im Alter von 84 Jahren.

Häufig gestellte Fragen

Hat John McCarthy den ersten Lisp allein programmiert?

Nein. Er definierte Prinzipien und Beschreibung; Steve Russell implementierte den ersten Evaluator, weitere Forscher Speicherverwaltung und Compiler.

Warum verwendet Lisp so viele Klammern?

Sie machen die verschachtelte Struktur explizit und geben Code und Daten eine einheitliche, leicht analysierbare Darstellung.

Ist Lisp die erste funktionale Sprache?

Es gehört zu den frühesten Sprachen, die Funktionen und Rekursion ins Zentrum stellen, doch funktionale Programmierung entstand aus mehreren mathematischen und sprachlichen Traditionen.

Welche Beziehung besteht zwischen Lisp und KI?

Lisp wurde für symbolische Strukturen und Regeln entworfen und war jahrzehntelang eine zentrale Sprache der KI-Forschung.

Wird Lisp noch verwendet?

Ja, in verschiedenen Dialekten wie Common Lisp, Scheme, Emacs Lisp und Clojure sowie als wichtiger Einfluss auf moderne Sprachen.

War dieser Artikel hilfreich?

Quellen und Referenzen

  1. 1.Stanford Computer Science - Professor John McCarthy
  2. 2.Stanford Report - John McCarthy, seminal figure of artificial intelligence
  3. 3.John McCarthy - History of Lisp
  4. 4.Computer History Museum - Oral History of John McCarthy
  5. 5.National Academy of Sciences - John McCarthy: A Biographical Memoir

Sammlung

Programmiersprachen

18 / 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

Alan Turing: der Mathematiker, der dem Rechnen eine Form gab

Entdecken Sie Alan Turings Arbeiten zur Berechenbarkeit, seine Rolle in Bletchley Park, seine Computerentwürfe und seinen grundlegenden Beitrag zur künstlichen Intelligenz.

31. Juli 202614 min