LISP von Herbert Stoyan | Eine Einführung in die Programmierung | ISBN 9783540169147

LISP

Eine Einführung in die Programmierung

von Herbert Stoyan und Günter Görz
Mitwirkende
Autor / AutorinHerbert Stoyan
Autor / AutorinGünter Görz
Buchcover LISP | Herbert Stoyan | EAN 9783540169147 | ISBN 3-540-16914-8 | ISBN 978-3-540-16914-7

LISP

Eine Einführung in die Programmierung

von Herbert Stoyan und Günter Görz
Mitwirkende
Autor / AutorinHerbert Stoyan
Autor / AutorinGünter Görz

Inhaltsverzeichnis

  • 1 Einleitung.
  • 1.1 Warum LISP?.
  • 1.2 Zur Entwicklungsgeschichte von LISP.
  • 1.3 Was sind die Grundbausteine der Programmierung?.
  • 1.4 Grundbausteine der Programmierung in LISP.
  • 1.5 Der Inhalt dieses Lehrbuches.
  • 1.6 Literaturhinweise.
  • 1.7 Übungen.
  • 2 Einfache Terme und der Umgang mit Objekten.
  • 2.1 Einfache Terme.
  • 2.2 Bezugnahme auf Objekte.
  • 2.3 Umgang mit Objekten.
  • 2.4 Die externe Repräsentation von Objekten.
  • 2.5 Übungen.
  • 3 Primitive Datenobjekte — zugeordnete Grundfunktionen und externe Repräsentation.
  • 3.1 Zahlen.
  • 3.2 Zeichen.
  • 3.3 Zeichenketten.
  • 3.4 Symbole (Literal-Atome).
  • 3.5 Funktionsobjekte.
  • 3.6 Paare (Cons-Objekte).
  • 3.7 Weitere Datenstrukturen in verschiedenen LISP-Dialekten.
  • 3.8 Übungen.
  • 4 Das LISP-System im einfachen Dialog.
  • 4.1 Terme sind Listen.
  • 4.2 Der Dialog mit dem System.
  • 4.3 Die Umgebung verändert sich.
  • 4.4 Verschachtelung von Termen.
  • 4.5 Auswertung von Termen.
  • 4.6 Quotierung — Beabsichtigte Suspendierung der Auswertung.
  • 4.7 Die Wahrheitswerte T und NIL.
  • 4.8 Übungen.
  • 5 Funktionsdefinition als Abstraktion über Termen.
  • 5.1 Was ist Abstraktion.
  • 5.2 Funktionale Abstraktion in LISP.
  • 5.3 Auswertung von Termen mit LAMBDA-Ausdrücken als Funktion.
  • 5.4 Beziehungen zwischen Umgebungen — globale und lokale Effekte.
  • 5.5 Bedingte Ausdrücke — Verwendung und Verknüpfung von Prädikaten.
  • 5.6 Ein größeres Beispiel: Die Baukastenwelt („Blocks World“).
  • 5.7 Literaturhinweise.
  • 5.8 Übungen.
  • 6 Komplexe Datenstrukturen und ihre Verarbeitung — Rekursion und Iteration.
  • 6.1 Zusammensetzen (Kombinieren) von Daten zu komplexeren Strukturen.
  • 6.2 Datenabstraktion.
  • 6.3 Lineare Datenstrukturen und lineare Rekursion.
  • 6.4 Hierarchische Datenstrukturen und Baum-Rekursion.
  • 6.5 Arithmetische Ausdrücke als hierarchischeStrukturen — Anwendungsbeispiel: Vereinfachung.
  • 6.6 Rekursive Funktionen zur Manipulation von S-Ausdrücken.
  • 6.7 Literaturhinweise.
  • 6.8 Übungen.
  • 7 Kontrollstrukturen, Spezialformen und Macros.
  • 7.1 Was sind Kontrollstrukturen?.
  • 7.2 Wozu werden Spezialformen benötigt?.
  • 7.3 Die verallgemeinerte Variablenliste.
  • 7.4 Definition von Spezialformen: FEXPRs, FLAMBDAs und NLAMBDAs.
  • 7.5 Definition von Spezialformen: Macros und MLAMBDAs.
  • 7.6 Memo-Funktionen: Ein Beispiel für Macros.
  • 7.7 Sind FEXPRs wirklich erforderlich?.
  • 7.8 Literaturhinweise.
  • 7.9 Übungen.
  • 8 Ein- und Ausgabe.
  • 8.1 Dateien als Objekte.
  • 8.2 Spezifikation von Dateien.
  • 8.3 Allgemeines über die Ein-/Ausgabe.
  • 8.4 Eingabe.
  • 8.5 Lexikalische Verarbeitung und syntaktische Klassifikation von Zeichen.
  • 8.6 Read-Macros.
  • 8.7 Ausgabe.
  • 8.8 Ströme und die Simulation von Ein-/Ausgabe-Vorgängen durch Pseudo-Dateien.
  • 8.9 Direktzugriff auf Dateien.
  • 8.10 Literaturhinweise.
  • 8.11 Übungen.
  • 9 Funktionsobjekte.
  • 9.1 Funktionale. Funktionen, die Funktionen als Argumente haben.
  • 9.2 Probleme mit Funktionsobjekten.
  • 9.3 Generatoren und Ströme.
  • 9.4 Objekt-orientierte Programmierung und Prozeßsimulation.
  • 9.5 Simulation durch Funktionsobjekte mit zugeordneter Umgebung.
  • 9.6 Das Hafenmodell: Ein konkretes Simulationsbeispiel.
  • 9.7 Literaturhinweise.
  • 9.8 Übungen.
  • 10 Generische Funktionen und datengesteuerte Programmierung.
  • 10.1 Gründe für eine weitere Abstraktionsstufe.
  • 10.2 Generische Funktionen.
  • 10.3 Realisierung generischer Funktionen.
  • 10.4 Flavors: Ein neues Konzept für generische Funktionen und Nachrichtenaustausch.
  • 10.5 Grundstrukturen und generische Operationen in LISP-Systemen.
  • 10.6 Aspekte der datengesteuerten Programmierung.
  • 10.7 Literaturhinweise.
  • 10.8 Übungen.
  • 11 Regel-orientierteProgrammierung.
  • 11.1 Programmierstile und Informationsverarbeitungsmodelle.
  • 11.2 Grundbegriffe des Mustervergleichs.
  • 11.3 Mustervergleich mit strukturierten Daten.
  • 11.4 Unifikation.
  • 11.5 Einfache Produktionensysteme.
  • 11.6 Verallgemeinerte Produktionensysteme.
  • 11.7 Literaturhinweise.
  • 11.8 Übungen.
  • 12 Verarbeitung von LISP in LISP.
  • 12.1 Interpretation von LISP.
  • 12.2 Realisierung von Umgebungen — Bindungsstrategien.
  • 12.3 LISP-Interpreter für verschiedene Bindungsstrategien.
  • 12.4 Prinzipien der Compilation von LISP.
  • 12.5 Elemente der Assemblersprache in LISP und ihre Verwendung bei der Compilation.
  • 12.6 Literaturhinweise.
  • 12.7 Übungen.
  • Anhänge.
  • 13 Einige Bemerkungen über Programmiersysteme für LISP.
  • 14 Funktionenverzeichnis.
  • 15 Übersicht über die Abweichung der Funktionsdefinition in anderen LISP-Dialekten.
  • 16 Literaturverzeichnis.
  • 17 Namen- und Sachverzeichnis.