22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

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.

Durch das Konzept des Übersetzers (Rutishauser 1951) kann man sich von dieser frustrierenden Ebene befreien<br />

und seine Algorithmen als imperative Programme (in Fortran, Pascal, Eiffel, Modula usw.) schreiben. Doch<br />

auch hier hat man noch mit Problemen wie <strong>der</strong> Speicherverwaltung zu kämpfen. Davon kann man sich durch<br />

den Übergang zu funktionalen Programmen, die dann wie<strong>der</strong>um in imperative Sprachen übersetzt werden,<br />

befreien. Fühlt man sich sogar von <strong>der</strong> Algorithmusentwicklung belästigt, so muß man auf weitere Ergebnisse<br />

<strong>der</strong> Forschung hoffen, die die Programmsynthese automatisiert. Dann beschränkt sich die Systementwicklung<br />

nur mehr auf die Beschreibung, was man will. Das Wie, also das Programm, wird dann automatisch generiert.<br />

Diese Schichten <strong>der</strong> formalen Systeme machen einen Teil <strong>der</strong> Faszination <strong>der</strong> <strong>Informatik</strong> aus: Durch Übersetzung<br />

von einer oberen Schicht in die nächsttiefere kann man sich von Fesseln des unteren Systems befreien<br />

und in die höhere Ebene <strong>der</strong> formalen Systeme und damit auch des Denkens aufsteigen.<br />

Komplexere Softwaresysteme haben generell eine Schichtenstruktur. Auf <strong>der</strong> Basis einfacher Systeme baut<br />

man komplexere Systeme auf, die wie<strong>der</strong>um Basis <strong>der</strong> nächsten Entwicklung sind. Das leitet uns zum zweiten<br />

Schwerpunkt <strong>der</strong> Grundzüge <strong>der</strong> <strong>Informatik</strong> über.<br />

1.3 Methodisch-Technische Schwerpunkte<br />

Auf <strong>der</strong> Basis formaler Systeme können Programme entwickelt werden. Die Anwendung formaler Systeme, ist<br />

daher die wichtigste Aufgabe <strong>der</strong> Grundausbildung. Programme können von guter o<strong>der</strong> schlechter Qualität<br />

sein. Daher ist bei komplexeren Programmen wichtig, Techniken <strong>der</strong> Systementwicklung einzusetzen, die zu<br />

Programmen hoher Qualität führen. Die Technik <strong>der</strong> Systementwicklung nennt man Software Engineering.<br />

1.3.1 Programmieren: Anwendung formaler Systeme<br />

Im Zentrum <strong>der</strong> Anwendung steht das Programmieren in problemorientierten Sprachen und in maschinennahen<br />

Sprachen. Der Schwerpunkt wird hierbei auf die Programmiersprache Eiffel [Meyer, 1988, Meyer, 1992]<br />

und auf den Assembler des Motorolarechners [Kammerer, 1993] gelegt. Nach diesen beiden Semestern sollten<br />

Sie in <strong>der</strong> Lage sein, durch Selbststudium die Kenntnisse an<strong>der</strong>er Programmierprachen zu erwerben.<br />

Die Auswahl <strong>der</strong> Sprache Eiffel hat didaktische Gründe. Als Sprache zur Erklärung von Programmierkonzepten<br />

spielt Eiffel heute die gleiche Rolle wie Pascal vor etwa 20 Jahren. Eiffel ist die einfachste und konsequenteste<br />

Programmiersprache mit objektorientierten Konzepten (siehe Abschnitt 1.3.6). Die Erfahrungen <strong>der</strong> vorangegangenen<br />

Semester zeigen, daß Eiffel sich zur Einführung in objektorientierte Sprachen beson<strong>der</strong>s gut eignet.<br />

In Umfragen wurde Eiffel gegenüber C++ bevorzugt. Pascal wurde abgelehnt. Bei guter Kenntnis von Eiffel ist<br />

es ein leichtes nach C++ zu wechseln, das sich trotz softwaretechnisch schlechter Grundkonzeption langsam<br />

zum Industriestandard entwickelt. Die in <strong>der</strong> Schule übliche Sprache Pascal hat in <strong>der</strong> Schule zur Entwicklung<br />

einfacher Algorithmen ihre Berechtigung, ist für größere Systeme aber in ihrer mittlerweile veralteten Konzeption<br />

ungeeignet. Die Verbesserungsvorschläge in Richtung Modularisierung und Objektorientierung setzen<br />

in Pascal und C auf den festen Standard auf und bieten daher kein harmonisches Gesamtkonzept an.<br />

Die Auswahl des Assemblers ist durch die jeweiligen Arbeitsplatzrechner des FB20 gegeben. Derzeit sind die<br />

Rechner mit Motorola 680x0 ausgestattet.<br />

Bevor man programmiert, sollte man wissen, was man programmieren will. Es muß also die Anfor<strong>der</strong>ungsdefinition<br />

vorhanden sein. Die Programmiersprache Eiffel bietet dafür die Idee eines Kontraktes an: Wenn<br />

<strong>der</strong> Benutzer meines Programms die von mir vorgeschriebenen Voraussetzungen garantiert, dann garantiert<br />

mein Programm dem Benutzer die beschriebenen Ergebnisse. Die Voraussetzungen und Ergebnisse sollten<br />

nach Möglichkeit formal deskriptiv beschrieben sein, damit sie eindeutig sind und auch formal geprüft werden<br />

können. Daher werden wir zuerst einen Streifzug durch die Logik (Aussagen- und Prädikatenlogik erster Stufe)<br />

machen, bevor wir in die Programmiersprache Eiffel und in ihre Anwendung einsteigen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!