Software Prototyping mit SETL

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.

Weitere Produkte vom selben Autor

Das siebte Buch: Objektorientierung mit C++ Doberkat, Ernst-Erich

39,95 €*
Praktischer Übersetzerbau Fox, Dietmar

49,95 €*
Erzeugende Funktionen verständlich erklärt Doberkat, Ernst-Erich

14,99 €*
Stochastic Coalgebraic Logic Doberkat, Ernst-Erich

106,99 €*