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

COMP30151: Understanding Programming Languages (2009-2010)

This is an archived syllabus from 2009-2010

Understanding Programming Languages
Level: 3
Credit rating: 10
Pre-requisites: COMP10020 or equivalent (e.g. CS1021 COMP10021 or MATH10111 or MATH10131 or MATH10212 or MATH10232 or MATH10662 or MATH10672)
Co-requisites: No Co-requisites
Duration: 11 weeks.
Lectures: 22
Lecturers: Dave Lester
Course lecturer: Dave Lester

Additional staff: view all staff
Timetable
SemesterEventLocationDayTimeGroup
Sem 1 w1-5,7-12 Lecture LF15 Fri 09:00 - 10:00 -
Sem 1 w1-5,7-12 Lecture LF15 Thu 09:00 - 10:00 -
Sem 1 w1-5,7-12 Lecture 1.3 Mon 13:00 - 14:00 -
Assessment Breakdown
Exam: 100%
Coursework: 0%
Lab: 0%
Degrees for which this unit is optional
  • Artificial Intelligence BSc (Hons)

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.

Learning Outcomes

A student successfully completing this module will:

Be able to specify a simple imperative programming language using natural, structural operational, denotational, continuation, and axiomatic semantics.
Be able to show how two different specifications are related.
Be able to extend the specification of a simple imperative programming language to more complex constructions.

Assessment of Learning outcomes

There will be one exam question on each of: natural, structural operational, denotational, continuation, and axiomatic semantics.

One semantics for a procedural language will be given in an appendix to the exam paper. For this semantics students are expected to be able to extend the semantics for more complex constructions.

A major component of the other four exam questions will be to give a corresponding semantics to that of the appendix and show their relation. A minor part of each of the other four questions will be to show how they can be extended.

Contribution to Programme Learning Outcomes

A1, B1, D6

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.