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

COMP36411: Understanding Programming Languages (2012-2013)

This is an archived syllabus from 2012-2013

Understanding Programming Languages
Level: 3
Credit 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
SemesterEventLocationDayTimeGroup
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 outcomeUnit learning outcomesAssessment
A1 B1 D6Be able to specify a simple imperative programming language using natural, structural operational, denotational, continuation, and axiomatic semantics.
  • Examination
A1 B1 D6Be able to show how two different specifications are related.
  • Examination
A1 B1 D6Be able to extend the specification of a simple imperative programming language to more complex constructions.
  • Examination

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.