I'm currently a PhD student at the University of Sheffield, working in the area of concurrent systems, specifically with respect to the theory of synchronous mobile systems (see the outline below). I'm also a passionate supporter of the Free Software movement and have made significant contributions within the domain of Free Java over the past four years (see my other website for more information). On 20/10/2008, I entered full time employment with Red Hat, working on the IcedTea project as part of the OpenJDK team.
Recent changes in the direction of computer hardware development have created an impasse in the domain of software engineering. Over the past few years, new microprocessors have not seen the same increase in clock speed that has prevailed over previous decades. Instead, the use of multiple `cores' has become common, due largely to physical limitations which prevent the individual elements of a single processor core becoming any smaller. As a result, the performance benefits of these new processors arise not from being able to execute a single task faster than before, but from the parallel execution of many such tasks.
However, this leads to a problem. The existing dominant methods for designing software systems are inherently sequential. Current imperative and object-oriented programming languages are still founded on the principles of early computational models, such as the Turing machine. These take an idealised view of events where they always occur sequentially and in isolation. Programs are thus still effectively written as a sequence of reads and writes to a form of memory. The problem with this approach is that it runs into major issues when the execution of other programs may cause changes to memory outside the remit of the program. Imagine Turing's model but with multiple heads, each running separate programs yet still sharing the same tape -- what happens if more than one head writes to the same area of the tape?
Our research advocates a move towards systems where the focus is on interaction between minimal sequential subsystems. Rather than building huge monolithic structures, the same result can be achieved using a number of smaller components, running in parallel. Such a strategy has been suggested in varying forms over the years, but due to the perceived future evolution of the microprocessor, this is now an essential requirement, rather than a design ideal or optimisation. We also provide a formal grounding for such designs, based on academic research which has been largely overlooked in the industrial sector. Security also forms an inherent part of both the design and formal model by allowing restrictions to be imposed on the communication between individual components.
What we propose here is a compromise; we introduce a new framework, DynamiTE with a task-oriented design methodology, which retains as many familiar ideas as possible. Unlike existing efforts, we avoid introducing a completely new programming language. Instead, we build on top of an existing one (Java) which is already familiar to many software developers and which uses constructs with which they are already familiar. In doing so, we remove a huge barrier to adoption; the implementation of the framework is no longer some mysterious mass of code written in an obscure functional language, but a Java library like any other which developers may even be able to contribute to with time.
Remove the additional @ character before using.
gnu_andrew on FreeNode IRCI'm now in the process of writing up my thesis and no longer hold any administrative roles.
All photos are licenced under a Creative Commons Attribution-No Derivative license.
Each movie is provided as a Theora video stream together with a Vorbis audio stream using the Ogg container format. Three versions are provided, suitable for different downloading capabilities: full size, half size and quarter size. The audio stream is also provided as a separate download using Speex, which may be preferable if you are not bothered about seeing the visual content. Further details of these formats are available on the Xiph website. A DVD copy is available on request for a nominal duplication and distribution charge. You also find some movies linked from the photograph pages as appropriate. All videos are licenced under a Creative Commons Attribution-No Derivative license.
| Title | Artist | Date | Venue/Event | Low (176x144) | Med (352x288) | High (704x576) | Audio |
|---|---|---|---|---|---|---|---|
| Ants! | Mesude Biçak | 28/05/2008 | VT/G22 | Play | Play | Play | Play |
| Title | Artist | Date | Venue/Event | Low (176x144) | Med (352x288) | High (704x576) | Audio |
|---|---|---|---|---|---|---|---|
| Data Quality as a Fuzzy Set | Henry Addico | 31/10/2007 | VT/G22 | Play | Play | Play | Play |
| Modelling Compensation with Timed Process Algebra | Simon Foster | 01/06/2007 | Theory SIG/G22 | Play | Play | Play | Play |
| Monads in Haskell: Modelling Computation in a Functional Setting | Simon Foster | 21/03/2007 | SG-LT05/COM2020 | Part 1, Part 2 | Part 1, Part 2 | Part 1, Part 2 | Part 1, Part 2 |
| Title | Artist | Date | Venue/Event | Low (176x144) | Med (352x288) | High (704x576) | Audio |
|---|---|---|---|---|---|---|---|
| P Systems as a Formal Framework for the Specification and Simulation of Biological Systems | Francisco Romero Campero (University of Sevilla) | 08/12/2006 | G22/VT | Play | Play | Play | Play |
| A Machine With Class: A FRamework for Object Generation, Integration and Language Authentication (FROGILA) | Emmanuel Ogunshile | 10/11/2006 | G22/VT | Play | Play | Play | Play |
| Searching and Retrieving in Source Code Digital Libraries | Maslita Abdul Aziz | 03/11/2006 | G22/VT | Play | Play | Play | Play |
| Reverse Engineering X-Machines using Dynamic Analysis | Shaukat Ali | 03/11/2006 | G22/VT | Play | Play | Play | Play |
| Challenges in Specifying and Verifying Multi-Agent Systems | Mahmood Javed | 27/10/2006 | G22/VT | Play | Play | Play | Play |
| Semantic Macromodeller | Mohammed Ibrahim Ullah (Ibby) | 27/10/2006 | G22/VT | Play | Play | Play | Play |
| Testing Erlang Code with QuickCheck | Zubair Sheikh | 20/10/2006 | G22/VT | Play | Play | Play | Play |
| Empirical Assessment of Test First Approach - A Comparative Study | Liang Huang | 20/10/2006 | G22/VT | Play | Play | Play | Play |
| Data Quality in XML Databases: An Application in Health Care | Henry Addico | 13/10/2006 | G22/VT | Play | Play | Play | Play |
| Towards Extreme Design | Abraham Rodriguez-Mota | 13/10/2006 | G22/VT | Play | Play | Play | Play |
| Nomadic Time | Andrew John Hughes | 06/10/2006 | G22/VT | Play | Play | Play | Play |
| Composite Web Services | Simon Foster | 06/10/2006 | G22/VT | Play | Play | Play | Play |
| Nomadic Time | Andrew John Hughes | 22/08/2006 | G22/CRG | Play | Play | Play | Play |
| ASDL: A Wide Spectrum Language for Designing Web Services | Monika Solanki (DeMontfort University, Leicester) | 18/08/2006 | G22/VT | Play | Play | Play | Play |
| 3-Level Composition and Cashew | Barry Norton (Knowledge Media Institute, Open University) | 18/08/2006 | G22/VT | Play | Play | Play | Play |
| The Semantic Modeller | Mohammed Ibrahim Ullah (Ibby) | 28/07/2006 | G22/VT | Play | Play | Play | Play |