Beschreibung

Die Vorlesung bespricht die grundlegenden Konzepte heutiger Programmiersprachen aus der Sicht der praktischen Anwendung zur Lösung von Softwareproblemen.

Programmierung bedeutet nicht nur die Entwicklung und das Testen (oder, besser, Verifizieren) irgendeines korrekten und effizienten Programms zur Lösung eines bestimmten Anwendungsproblems. Es ist auch wichtig, daß das Programm gute Wartungseigenschaften besitzt. Ein Programm soll daher möglichst viele, in anderen Kontexten wiederverwendbare Teile besitzten, es soll leicht modifizierbar sein, wenn sich das ursprünglich gestellte Problem ändert, es soll von Leuten verstanden werden können, die an seiner Entwicklung nicht beteiligt waren, und vieles mehr.

In der Vorlesung untersuchen wir die Konzepte heutiger Sprachen hinsichtlich der Art und Weise, wie sie diese Anforderungen an die Programmierung unterstützen. Folgende Fragen werden deshalb typischerweise gestellt:

Diese Fragen werden nicht theoretisch oder technisch detailiert behandelt, sondern anhand ausgewählter, nichttrivialer Programmierbeispiele erläutert. Verweise auf die theoretische oder technisch detailiertere Behandlung, die man in angrenzenden Vorlesungen (z.B. Übersetzerbau, Semantik von Programmiersprachen, Spezifikation und Verifikation, Logische Programmierung, lambda-Kalkül und Typentheorie) lernen kann, werden gegeben.

Die Vorlesung orientiert sich an sprachübergreifenden Konzepten (Kontrollstrukturen, Datentypen, Berechnungsmodellen, Abstraktionsmechanismen), eine Sichtweise, die oft parallel, aber manchmal auch orthogonal zu den großen Programmierparadigmen (imperativ, funktional, logisch, objektorientiert) liegt. Die Vorlesung verwendet konkrete Programmiersprachen als Anschaungsmaterial, insbesondere ML, Haskell, Prolog und Java.

Die begleitenden Übungen sind teils theoretisch, aber zum größeren Teil praktisches Programmieren in einigen der genannten Sprachen.


On to Lernziele Part of Vorlesung
Andreas Podelski, Abdelwaheb Ayari, Hubert Baumeister
February 25, 1997

Imprint | Data Protection