Module description
Aims and Learning Outcomes
To introduce alternative languages and paradigms and the trade-offs in alternative language choices.
On successful completion of this module, students will be able to:
- Describe imperative languages in enough detail and sufficiently formally so that their essential aspects can be understood and distinguished clearly
- Similarly, describe declarative languages (functional and logic) in enough detail and sufficiently formally so that their essential aspects can be understood and distinguished clearly
Syllabus
An indication of the types of topics:
The role of programming languages:
- Paradigms
- Syntax, Semantics, Implementation
- Transition systems
Imperative languages:
- General features, variables, assignment, control statements, blocks
- Operational Semantics: Abstract Machines, Structural Operational Semantics
Functional programming languages:
- General features, function definitions, recursion
- Type Systems
- Operational Semantics
Logic programming languages:
- General concepts
- Operational Semantics: resolution, unification
Assessment details
Please note: The below assessment details for the 2025/26 academic year may be updated. The confirmed details will be available on the Student Handbook and on the module KEATS page at the beginning of the semester.