Das vorliegende Buch ging aus einer Vorlesung hervor, die wir gemeinsam im Sommersemester 1982 an der Universität Erlangen-Nürnberg gehalten haben. Wesentliche Anregungen verdanken die Autoren den Manuskripten der Vorle sung "Structure und Interpretation of Computer Programs" von Abelson, Fano und Sussman (1981, 1982, 1983 als MIT-AI-TR-735 veröffentlicht) am Massachusetts Institute ofTechnology, sowie den Lehrbüchern "LISP" von Win ston und Horn (1981) und "Artificial Intelligence Programming" von Charniak, Riesbeck und McDermott (1980) und dem Vorlesungsmanuskript "LISP - Pro gramming and…mehr
Das vorliegende Buch ging aus einer Vorlesung hervor, die wir gemeinsam im Sommersemester 1982 an der Universität Erlangen-Nürnberg gehalten haben. Wesentliche Anregungen verdanken die Autoren den Manuskripten der Vorle sung "Structure und Interpretation of Computer Programs" von Abelson, Fano und Sussman (1981, 1982, 1983 als MIT-AI-TR-735 veröffentlicht) am Massachusetts Institute ofTechnology, sowie den Lehrbüchern "LISP" von Win ston und Horn (1981) und "Artificial Intelligence Programming" von Charniak, Riesbeck und McDermott (1980) und dem Vorlesungsmanuskript "LISP - Pro gramming and Proving" von McCarthy und Talcott (1980) von der Stanford University. Im Mittelpunkt unserer Darstellung steht der Begriff des Programmierstils. Er gestattet eine sinnvolle Klassifikation der Ansätze und Leitlinien, nach denen in LISP programmiert wird und ermöglicht gleichzeitig die Einbeziehung neuer Grundgedanken wie des der Objektorientierung. Wir hoffen, damit eine neu artige Einführung in die Programmierung vorzulegen, die nur noch wenige Ge meinsamkeiten mit traditionellen Darstellungen teilt. So kommt es, daß in diesem Lehrbuch nichts über "interne Repräsentation" von LISP-Objekten (z. B. Spei cherstrukturen, automatische Speicherverwaltung, usw.) und über interne Details der Implementation von LISP zu finden ist. Wir haben diese Entscheidung be wußt getroffen, da wir meinen, daß diese Themen Gegenstand eines weiterführen den Textes sein sollten. Der hieran interessierte Leser sei auf Allens "Anatomy of LISP" (1979) verwiesen.Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Günther Görz lehrt am Lehrstuhl für Künstliche Intelligenz an der Friedrich-Alexander Universität Erlangen-Nürnberg.
Inhaltsangabe
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.
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.
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497