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

This is an archived syllabus from 2013-2014

COMP36411 Understanding Programming Languages syllabus 2013-2014

COMP36411 Understanding Programming Languages

Level 3
Credits: 10
Enrolled students: pending

Course leader: Dave Lester

Additional staff: view all staff

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

On successful completion of this unit, a student will be able to:

Learning outcomes are detailed on the COMP36411 course unit syllabus page on the School of Computer Science's website for current students.

Reading list

No reading list found for COMP36411.

Additional notes

Course unit materials

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