Lecture 20: Exam Tutorial

19 March 2009

Review of the exam paper from last year.

The exam this year will have the same standard format: answer two out of three questions, in two hours, with all questions carrying equal weight.


Lecture 19: Cautionary Tales in Concurrency

16 March 2009

Three topics demonstrating challenges in concurrency. Complex lock manipulation: reentrant locks, nested locks, and fine-grained locking (hand-over-hand) with linked-lists.
Scheduling: thread priorities, pre-emption, the priority inversion problem and priority inheritance as a solution. Relaxed (aka weak) memory models: the Java Memory Model and its guarantees for programmers and compiler writers; examples of behaviours possible with racy programs.


APL18: Guest Lecture

11 March 2009

Programming with Dependent Types

Bob Atkey

University of Edinburgh

9am Thursday March 12th 2009

Read the rest of this entry »


APL17: Guest Lecture

9 March 2009

Method Duplication

Alastair Donaldson

Codeplay Software Limited

9am Monday 9 March 2009

Read the rest of this entry »


Lecture 16: Concurrency in Scala and Polyphonic C#

5 March 2009

Concurrency mechanisms as ways of providing multiple processes and controlling separation (to ensure non-interference) and co-operation (to allow communication). Synchronous and asynchronous message passing. Actors in Scala, with asynchronous messaging; thread-based and event-based actors. Polyphonic C# with message passing and synchronization integrated into method dispatch; defining chords with asynchronous and synchronous methods.

(recommended reading and references to follow)