Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Schichten beim Beispiel rationale Zahlen:<br />
1. cons, car, cdr<br />
2. konstr-rat, zaehler, nenner<br />
3. +rat, *rat<br />
4. Anwendungsprogramm<br />
Vorteile:<br />
• Implementierung einzelner Schichten austauschbar<br />
• Beherrschung der Entwurfskomplexität<br />
• Verifikation einzelner Schichten<br />
Abstrakte Datentypen: beschrieben durch Konstruktoren, Selektoren (und<br />
Operationen) und Gesetze<br />
Beispiel Datenpaare: Funktionen cons, car, cdr und die beiden oben genannten<br />
Gesetze<br />
Beispiel rationale Zahlen: Funktionen und Gesetz<br />
(= (/ (zaehler (konstr-rat x y))<br />
(nenner (konstr-rat x y)))<br />
(/ x y))<br />
Abstrakt heißt dabei, daß keine konkrete Implementierung festgelegt ist (z.B.<br />
kann die Kürzung bei rationalen Zahlen eingebaut oder weggelassen werden).<br />
Andere Implementierung <strong>von</strong> Paaren:<br />
(define (cons x y)<br />
(define (zuteilen m)<br />
(cond ((= m 0) x)<br />
((= m 1) y)<br />
(else (error "Falsches Argument"))))<br />
zuteilen)<br />
(define (car p) (p 0))<br />
(define (cdr p) (p 1))<br />
ungeöhnliche Implementierung, aber sie erfüllt alle Gesetze für Paare<br />
⇒ Sprachen mit Prozeduren höherer Ordnung benötigen nicht unbedingt<br />
Datenstrukturen<br />
Definition: Ein abstrakter Datentyp (ADT) (Σ, X, E) besteht aus<br />
22