Structure of Programming Languages I: Denotational Semantics

RISC-Linz logo

315.505, WS 97/98, T212
Wolfgang Schreiner

The course will be given in blocked form at the following dates:

Sat, November 8 8:30-13:00 T212
Sat, November 15 8:30-13:00 T212
Sat, December 13 8:30-13:00 T212
Sat, January 17 8:30-13:00 T212

Denotational semantics is a methodology for giving precise meaning to a programming language. While the syntax of a language is always formally specified in a variant of BNF, the more important part of definining its semantics is mostly left to natural language. which is ambiguous and leaves many questions open. In order to reason about a language or to construct a compiler for this language, we need a much deeper understanding.

In denotational semantics, a programming language is defined by a valuation function that maps a program into a mathematical object considered as its denotation (i.e. meaning). The valuation function of a program construct reveals the essence of this construct independent of its syntactic surface.

This course presents a practical approach to denotational semantics emphasizing the descriptional and implementational aspects. Furthermore, two alternative methods of charaterizing the meaning of programming languges, operational semantics and axiomatic semantics, are outlined, and their relationship to denotational semantics is established.

A continuation course in SS 98 will deal with types, modules, and classes in programming languages.

  • Contents
  • Exercises
  • Literature

  • Maintained by: Wolfgang Schreiner
    Last Modification: December 18, 1997

    [Up] [RISC-Linz] [University] [Search]