TDDA43 Programming Theory, 6 ECTS-points
/Programmeringsteori/

Advancement level:
C

Aim:
Getting familiar with methods of formal specification of programming languages, especially of their semantics (i.e. meaning). Orientation on proving correctness of programs.

Prerequisites:
Discrete mathematics and logic (TDDB90, TATM90 or equivalent). A main course on programming which includes imperative languages (like computer languages and programming TDDB80).

Supplementary courses:
TDDB44 Compiler Construction, advanced programming courses like TDDA69 Data and program structures and TDDA 41 Logic Programming.

Course organization:
The theory is presented during lectures and in tutorial classes. Labs and tutorial classes provide practice.

Course content:
Transition systems, lambda calculus, operational semantics, denotational semantics and axiomatic semantics. Applying axiomatic semantics to proving program correctness.

Course literature:
H. R. Nielson and F. Nielson. Semantics with Applications. John Wiley and Sons 1992

LABA, 1,5 p.
UPGAHand-in assignments, 2,5 p.
Lab excercises, 1,5 p

Course language is english.