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
Overview
In this course unit we treat a simple programming language as an object of study and analysis.Aims
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.
Syllabus
Introduction
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.
Compilation
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
Lectures
22
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.