COMP36411: Understanding Programming Languages (2012-2013)
This is an archived syllabus from 2012-2013
Understanding Programming Languages
Level: 3Credit rating: 10
Pre-requisites: COMP11120 or equivalent
Co-requisites: No Co-requisites
Duration: 11 weeks.
Lectures: 22
Course Leader: Dave Lester
Course leader: Dave Lester
Additional staff: view all staff
Timetable
Semester | Event | Location | Day | Time | Group |
---|---|---|---|---|---|
Sem 1 | Lecture | 1.4 | Thu | 09:00 - 10:00 | - |
Sem 1 | Lecture | 1.4 | Tue | 13:00 - 14:00 | - |
Assessment Breakdown
Exam: 100%Coursework: 0%
Lab: 0%
Themes to which this unit belongs
- Computer Languages
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.
Programme outcome | Unit learning outcomes | Assessment |
---|---|---|
A1 B1 D6 | Be able to specify a simple imperative programming language using natural, structural operational, denotational, continuation, and axiomatic semantics. |
|
A1 B1 D6 | Be able to show how two different specifications are related. |
|
A1 B1 D6 | Be able to extend the specification of a simple imperative programming language to more complex constructions. |
|
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.