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

COMP36411 Understanding Programming Languages syllabus 2018-2019


COMP36411 Understanding Programming Languages

Level 3
Credits: 10
Enrolled students: pending

Course lecturer: not assignedAdditional staff: view all staff

Additional requirements

  • Pre-requisites

    COMP11120 or equivalent

Assessment methods

  • 100% Written exam


In this course unit we treat a simple programming language as an object of study and analysis.


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.



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.

Teaching methods



Feedback methods

The primary method of providing feedback is the "lecture-tutorial": that is, a short-ish lecture (35-40 minutes typically) followed by an open session in which problem solutions provided by students are reviewed by the lecturer.

Study hours

  • Lectures (24 hours)

Employability skills

  • Problem solving

Learning outcomes

Learning outcomes are unknown for COMP36411.

Reading list

COMP36411 does not have a specified reading list.

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.