Acquisition of basic knowledge (foundational formalisms and definition methods) for the semantic description and characterization of programming languages and programming constructs. Learning of methodological criteria for the analysis, design and comparison of programming languages.
Foundational semantic description methods and formalisms: Operational, denotational and axiomatic semantics of imperative program constructs; relations to program verification; equational specification, programming and semantics; inductive and recursive definitions; fixed point operators and constructions; plus selected topics like non-determinsim, parallelism, and concurrency.