Description:
The use of logic as an aid to programming. Formal semantics
of programming languages: imperative programs, functional programs,
parallel processes, communicating processes. Partial and total
correctness. Refinement theorems: by steps, by parts, by cases.
Semantics of recursion and the least-fixed-point construction;
monotonicity, continuity. Semantics of data types; data refinement.
|