Modulinformationssystem Informatik

 

Semantik von Programmiersprachen URL PDF XML

Modulcode: WI11
Englische Bezeichnung: Semantics of Programming Languages
Modulverantwortliche(r): Prof. Dr. Rudolf Berghammer
Turnus: unregelmäßig (SS09 SS10)
Präsenzzeiten: 4V 2Ü
ECTS: 8
Workload: 240 Std.
Dauer: ein Semester
Modulkategorien: WI (Sonstige)
Lehrsprache: Deutsch
Voraussetzungen: Info

Kurzfassung:

Eine präzise Beschreibung der Bedeutung von Programmen ist eine unerläßliche Voraussetzung für viele Dinge, die Programmiersprachen und Programmierung betreffen. Diese Vorlesung befaßt sich mit der formalen, d.h. mit mathematischen Methoden durchgeführten, semantischen Beschreibung der Kontrollstrukturen von Programmiersprachen und einigen Anwendungen in der Programmverifikation und Programmentwicklung.

Lernziele:

Als das hauptsächliche Ziel will die Vorlesung die in der theoretischen Informatik zur Zeit bedeutendsten Methoden zur Formalisierung der Semantik der Kontrollstrukturen einer Programmiersprache vermitteln, wobei sie sich auf sogenannte sequentielle Sprachen beschränkt, also keine parallelen oder verteilten Abläufe betrachtet. Die Vermittlung von Methoden beinhaltet auch die dazu notwendigen Grundlagen und bezieht sich somit konsequenterweise auch auf den mathematischen Hintergrund. Bei der Darstellung dieses Stoffs wird versucht, die Gegenstände, etwa die Programmiersprachen bei den verschiedenen Semantikfestlegungen, so einfach wie möglich zu halten, damit die verwendeten Methoden und die Zusammenhänge nicht durch einen übermäßigen technischen Aufwand verdeckt werden. Auch auf eine ausführliche Beweisführung wird großer Wert gelegt. Und schließlich soll als Anwendung von Semantik noch gezeigt werden, wie wissenschaftliche Methoden zur Programmentwicklung sich auf diese semantischen Grundlagen stützen können. Aus Umfangsgründen wird dabei der Schwerpunkt auf das begriffliche Gerüst gelegt und es werden folglich nur kleinere und übersichtliche Beispiele behandelt.

Lehrinhalte:

Die Lerninhalte ergeben sich ungefähr aus der nachfolgend angegebenen voraussichtlichen Gliederung der Vorlesung.

  • Beispiele für semantische Fragestellungen
  • Mathematische Grundlagen von Semantik
  • Denotationelle Semantik funktionaler Programmiersprachen
  • Denotationelle Semantik imperativer Programmiersprachen
  • Lösung von Bereichsgleichungen
  • Programmverifikation und axiomatische Semantik

Weitere Voraussetzungen:

Kenntnisse über Programmiersprachen und deren Anwendungen, die insbesondere in den Vorlesungen Informatik I bis IV erworben werden können.

Prüfungsleistung:

Mündliche Prüfung am Vorlesungsende

Lehr- und Lernmethoden:

Verwendbarkeit:

Literatur:

  1. Berghammer R.: Semantik von Programmiersprachen. Logos Verlag, 2001
  2. Best E.: Semantik: Theorie sequentieller und paralleler Programmierung. Vieweg Verlag, 1995
  3. Loeckx J., Sieber K.: The Foundations of Program Verification. Teubner, 1984
  4. Nielson H.R., Nielson F.: Semantics with Applications. A Formal Introduction. Wiley, 1992
  5. Schmidt D.A.: Denotational Semantics -- A Methodology for Language Development. Allyn and Bacon, 1986
  6. Winskel G.: The Formal Semantics of Programming Languages. The MIT Press, 1993

Verweise:

Kommentar: