Department of Computer Science, Unit Catalogue 2008/09
CM20218 Foundations of computation 2
| Credits: 6 |
| Semester: 2|
|Before taking this unit you must take CM10192 and (take CM10196 or take MA10001) and take CM20217|
Aims: To introduce the basic notions of formal semantics of programming languages as a tool for understanding and analyzing programming.
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.
Use of IT (A), Application of Number (T/F, A), Problem Solving (T/F, A).
* 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.