Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.2.4 Semantik <strong>der</strong> Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
2.2.5 Ableitungskalkül für die Prädikatenlogik . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />
2.2.6 Dreiwertige Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
2.3 Formale Beschreibung von Programmiersprachen . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />
2.3.1 Funktionen und zusammengesetzte Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . 51<br />
2.3.2 Bedingte Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
2.3.3 Abkürzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
2.3.4 Tabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
2.3.5 Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
2.4 Diskussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56<br />
2.5 Ergänzende Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />
3 Klassen und Objekte 59<br />
3.1 Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
3.1.1 Einfache Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
3.1.2 Verweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
3.2 Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
3.2.1 Abstrakte Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
3.2.2 Klassen in Eiffel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
3.2.3 Typen und Verweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
3.2.4 Kunden, Lieferanten und Selbstreferenz . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />
3.3 Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
3.3.1 Aufruf von Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
3.3.2 Definition von Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />
3.3.3 Lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
3.3.4 Standardoperationen für alle Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
3.3.5 Das aktuelle Exemplar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />
3.3.6 Nicht-standardmäßiges Erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78<br />
3.4 Das Geheimnisprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />
3.5 Copy- und Referenz-Semantik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
3.5.1 Einfache Typen und Klassentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />
3.5.2 mssxexpanded: Klassen mit Copy-Semantik . . . . . . . . . . . . . . . . . . . . . . . . 84<br />
3.6 Generische Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
3.6.1 Parametrisierung von Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
3.6.2 Typprüfung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />
3.6.3 Fel<strong>der</strong>: Beispiele generischer Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />
3.7 Verträge für Software-Zuverlässigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89