Skip to navigation | Skip to main content | Skip to footer

COMP36411: Understanding Programming Languages (2010-2011)

This is an archived syllabus from 2010-2011

Understanding Programming Languages
Level: 3
Credit rating: 10
Pre-requisites: COMP10020 or equivalent (e.g. CS1021 COMP10021 or MATH10111 or MATH10131 or MATH10212 or MATH10232 or MATH10662 or MATH10672)
Co-requisites: No Co-requisites
Duration: 11 weeks.
Lectures: 22
Lecturers: Dave Lester
Course lecturer: Dave Lester

Additional staff: view all staff
Sem 1 Lecture 1.4 Thu 09:00 - 10:00 -
Sem 1 Lecture 1.4 Wed 09:00 - 10:00 -
Assessment Breakdown
Exam: 100%
Coursework: 0%
Lab: 0%

Themes to which this unit belongs
  • Computer Languages


Students taking this module should gain a deeper understanding of some of the standard programming language constructs and of the overall structure of a programming language and should develop an appreciation of the role of formal semantics in the design and precise definition of a programming language.

Programme outcomeUnit learning outcomesAssessment
A1 B1 D6Be able to specify a simple imperative programming language using natural, structural operational, denotational, continuation, and axiomatic semantics.
  • Examination
A1 B1 D6Be able to show how two different specifications are related.
  • Examination
A1 B1 D6Be able to extend the specification of a simple imperative programming language to more complex constructions.
  • Examination



Syntax and Semantics. BNF and abstract syntax; the meaning of expressions; approaches to semantics - operational/denotational/axiomatic.

Natural Semantics

Natural semantics for while; non-determinism; parallelism. Structural Operational Semantics: Structural operational semantics for while; non-determinism; parallelism. Equivalence.


Compiling to abstract machine code; executing abstract machine code; equivalence.

Denotational Semantics

Direct-style semantics; fixpoints; equivalence; continuation semantics.

Axiomatic Semantics

Direct use of Natural, Structural Operational and Denotational Semantics for Correctness. Assertions and inference. Soundness and completeness.