Description:
| Aims: To introduce the basic notions of formal semantics of programming languages as a tool for understanding and analyzing programming.
Learning Outcomes: On completion of this unit, students will be able to:
1. Use formal semantic techniques to make the meaning of simple programming constructs precise.
2. Analyze simple programs and programming features using formal semantic techniques.
3. Define and explain the syntax and semantics of the lambda-calculus, and its role as a model of computation and as an idealized programming language.
Skills: Use of IT (A), Application of Number (T/F, A), Problem Solving (T/F, A).
Content:
* Simple, idealized programming languages, including at least a small imperative language and the lambda-calculus.
* Formal semantics of these languages, in operational or denotational style, or a combination.
* The use of formal semantics for defining programming constructs and reasoning about properties of programs such as correctness and equivalence.
|