28.03.2014 Aufrufe

Informatik 1 - Mitschriften von Klaas Ole Kürtz

Informatik 1 - Mitschriften von Klaas Ole Kürtz

Informatik 1 - Mitschriften von Klaas Ole Kürtz

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!