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.
Bauen wir nun einen Betrieb nach dem Süßer-Senf(Burger)-Konzept auf, so wird dort Weißwurst mit süßen<br />
Senf zusätzlich zum normalen Burger angeboten, und nach dem Scharfer-Senf(Backhuhn)-Konzept würde<br />
Weißwürste mit scharfem Senf zusätzlich zu Backhühnern angeboten.<br />
Erst durch das Konzept <strong>der</strong> Vererbung läßt sich die am Anfang angesprochene evolutionäre Entwicklung<br />
effizient realisieren. Die Sprachen, die Klassifizierung über Vererbung und Typparameter zulassen, sind Eiffel<br />
und C++. In den an<strong>der</strong>en werden gerade solche Erweiterungen eingebaut.<br />
1.3.7 Zusammenfassung<br />
Die obige Reihenfolge <strong>der</strong> Strukturierungskonzepte gibt ihre geschichtliche Entwicklung wie<strong>der</strong>. Die Strukturierung,<br />
wie sie bei <strong>der</strong> Systementwicklung durchgeführt wird, erfolgt genau umgekehrt. 6 Zuerst wird die<br />
Frage nach <strong>der</strong> Strukturierung <strong>der</strong> Daten gestellt, das System grob in Klassen zerlegt und die Beziehung<br />
<strong>der</strong> Klassen (Vererbung und Benutzung) zueinan<strong>der</strong> festgelegt. Anschließend werden für jede einzelne Klasse<br />
ihre Leistungen festgelegt und jede Leistung in Form eines Kontraktes beschrieben. Ein Kontrakt ist das<br />
Versprechen des Programmierers, daß, wenn die gefor<strong>der</strong>te Eingangsbedingung (Precondition) erfüllt ist, er<br />
garantiert, daß die Ausgangsbedingung (Postcondition) ebenso erfüllt ist.<br />
Damit ist dann die Entwurfsphase beendet, und es beginnt die Implementierungsphase, in <strong>der</strong> jede Leistung<br />
einer Klasse entsprechend dem Kontrakt programmiert wird. Die Programmierung benutzt dann die schrittweise<br />
Verfeinerung im Falle, daß die Implementierungsprache eine imperative o<strong>der</strong> maschinennahe Sprache ist.<br />
Man könnte natürlich auch die einzelnen Leistungen in einer logischen o<strong>der</strong> funktionalen Sprache realisieren,<br />
unter <strong>der</strong> Beachtung <strong>der</strong> Verfeinerungkonzepte, die diese Sprachen bieten.<br />
Die Fähigkeit zum Umgang mit formalen Systemen ist in allen diesen Phasen unumgänglich. Aus diesem<br />
Grunde werden wir zunächst die wichtigsten Teile <strong>der</strong> Logik und formaler Sprachbeschreibungen besprechen<br />
müssen, bevor wir die Konzepte von Programmiersprachen genauer vorstellen.<br />
6 Aus diesem Grunde folgen wir in dieser Vorlesung auch nicht <strong>der</strong> geschichtlichen Entwicklung son<strong>der</strong>n steigen “von oben”<br />
in die Programmierkonzepte ein.