Maintainable Concurrent Software

Abstract
Constructing software that is easy to maintain and reuse is not a trivial task. When the software being constructed exploits concurrency, the task is complicated further.

This thesis attempts to determine what shape an object-oriented programming language's concurrency support should take in order to aid the construction of concurrent software that is easy to maintain and reuse. This is achieved by analysing the component parts of concurrency, comparing and contrasting the way various object-oriented programming languages support concurrency, and analysing problems that arise when using these languages. Using this, the concurrency constructs that an object-oriented programming language should provide, and their inter-relationships, are described. Finally, solutions to common problems requiring concurrency, constructed using these constructs, are provided.

The particular contributions this thesis makes are: a taxonomy for classifying concurrency support in object-oriented programming languages, analysis of the issues arising when introducing concurrency support into object-oriented programming languages, and a working implementation of the concurrency constructs found to be necessary for an object-oriented programming language to support concurrency in a fashion that promotes the construction of software that is easy to maintain and reuse.

Other Information

Below are links to information that relate to this project. Some may have decayed, and some may require authentication. Contact me if you need further information.