wir die Sprache als Vehikel nutzt - dort werden jedoch Elemente der
disk: reten Mathematik transportiert. Da Fragen des Prototyping im
Vordergrund stehen, haben wir zwei in SETL vOIhandene Mechanismen hier
nicht behandelt: die data representation sublanguage (DRSL) und Back-
tracking. Die DRSL erlaubt die Deldaration von Variablen mit ihrer
Speicherdarstellung (analog zur Variablendeldaration in Sprachen wie
Pascal); sie ist in der gegenwärtigen Fonn nicht besonders nUtzlich.
Backtracking als nicht-deterministisches Programmieren hat noch keinen
Eingang in den Werkzeugkasten des Software Prototyping gefunden und
wurde daher auch nicht behandelt. Ansonsten haben wir eine vollständige
EinfUluung in SETL gegeben; ein kurzer Überblick über den Inhalt folgt.
Das erste Kapitel behandelt die zentralen primitiven Kontroll- und
Datenstrukturen und zeigt, wie Makros und Prozeduren definiert und
benutzt werden. Wtr wenden das auf die Konstruktion eines Scanners fOl
Pascal-Programme an, urn zu zeigen, daB man hiermit schon sinnvolle
Probleme bearbeiten kann. Im zweiten Kapitel werden zusammengesetzte
Datentypen (Mengen, Thpel, Abbildungen) behandelt, und die notwendigen
Ergänzungen im Hinblick auf Kontrollstrukturen angebracht. Kapitel m
wendet dann die Sprache auf einige Probleme an, urn dem Leser ein
vertieftes Geftlhl für den Umgang mit SETL zu geben. Wir diskutieren den
Algorithmus von Knuth, Morris und Pran zum Auffinden von Mustem in
Zeichenketten, ein Verfahren zurn dynamischen Hashing, und spezifizieren
einen Parsergenerator für eine einfache Klasse kontextfreier
Grammatiken. Insbesondere das letzte Beispiel zeigt, wie sich komplexe
Algorithmen kompakt und verständlich in SETL fonnulieren lassen.