This is an archived syllabus from 2013-2014
COMP36411 Understanding Programming Languages syllabus 2013-2014
COMP36411 Understanding Programming Languages
Enrolled students: pending
Course leader: Dave Lester
Additional staff: view all staff
- 100% Written exam
OverviewIn 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 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.
Direct-style semantics; fixpoints; equivalence; continuation semantics.
Direct use of Natural, Structural Operational and Denotational Semantics for Correctness. Assertions and inference. Soundness and completeness.
Feedback methodsThe 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.
- Lectures (24 hours)
- Problem solving
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.
No reading list found for COMP36411.
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.