Ferienakademie im Sarntal 2000
Kurs 1: Formale Modelle von Programmiersprachen


Wolfgang Mauerer

Denotationale Semantik

Die denotationale Semantik ist eine mathematisch orientierte Methode, um die Bedeutung von Programmen bzw. den Konstrukten von Programmiersprachen objektiv und eindeutig festzulegen. Ziel dabei ist es, jedem syntaktischen Konstrukt der Programmiersprache ein Objekt zuzuordnen (Denotation), das den Beitrag dieses Teilkonstruktes zum Gesamtprogramm beschreibt. Semantikbeschreibungen in diesem Modell sind also sehr oft rekursiv aufgebaut.
Um einen zur Repräsentierung der Semantik adäquaten Raum zu schaffen, greift man auf semantische Bereiche zurück. Dabei handelt es sich um mathematische Strukturen, die - ausgehend von partiellen Ordnungen - das Rückgrat der denotationalen Semantik bilden. Sie werden im Vortrag daher auch relativ breit behandelt.
Die vorgestellten Konzepte werden am Beispiel einer einfachen funktionalen Beispielsprache demonstriert.

Literatur

  • P.D. Mosses, Denotational Semantics. In: Handbook of theoretical computer sciences vol B (Ed.: J.v. Leeuwen), Elsevier, Amsterdam, 1990.
  • C.A. Gunter, D.S. Scott, Semantic Domains. In: Handbook of theoretical computer sciences vol B (Ed.: J.v. Leeuwen), Elsevier, Amsterdam, 1990.
  • K.C. Louden, Programming languages. Boston, 1993.
  • H.J. Schneider, Slides for the Miranda lectures, FAU Erlangen-Nürnberg, 1999.
  • H.J. Schneider, Slides for the Algol to Java lectures, FAU Erlangen-Nürnberg, 2000.
  • J. E. Stoy, Denotational Semantics. MIT Press, Cambridge, Mass, 1981.
  • E.G. Manes, M.A. Arbib, Algebraic Approaches to program semantics. Springer, New York, 1986.
  • H. Abelson et al., Revised^5 report on the algorithmic language scheme, 1998.
  • R. Hartwig, Vorlesungsskript Formale Semantik. Leipzig, 1996.