













|
|
Project Proposals
3rd/4th Year Projects
I would be interested in supervising any projects in the areas of programming language
implementation, program parallelisation and formal methods. Some suggestions for particular
projects are given below, although I would be interested in supervising any projects in
related areas.
Programming Language Implementation
- Design Your Own Programming Language.
Not entirely satisifed with the programming languages currently out there?
Think you can do better yourself? The aim of this project is to design your
own programming language which will compile to the MIPS64 instruction set.
You can build this on top of Mike Scott's command line assembler for MIPS64
(see here).
This can then be used to demonstrate the connection between the high-level
language, the assembly language and the simulated hardware.
Program Parallelisation
- Program Parallelisation Using
Data Parallel Haskell. As the number of cores on a chip continues to increase,
there is an increasing need for efficient parallel implementations of programs.
Data Parallel Haskell is an extension of the Haskell programming language with
a novel approach to the implementation of parallism through the use of nested
data parallelism. The aim of this project is to perform a number of different
parallel implementations of programs using Data Parallel Haskell and to compare
the performance of these programs with parallel implementations written in other
languages.
Formal Methods
- Teaching Tool for Formal Methods.
The aim of this project is to develop a tool which will support the teaching of
formal methods in the course CA648 Formal Programming. The tool will provide an
environment within which students on this course can enter programs written in
the small programming language used in the course. The tool should then aid the
student by allowing them to add assertions to the program, and then displaying
the verification conditions which would be generated from these assertions.
Support for proving the generated verification conditions could also be provided
Other
- Fantasy Football Manager.
Fantasy Premier League is a well-known fantasy football game where each
player can pick their own team and do transfers each week. A wealth of
information is available for each player on the website including value,
form, transfers in, transfers out, etc. The aim of this project is to
scrape this data from the website, and use it to implement a number
of automated strategies for fantasy football teams. These automated teams
could then compete against each other and against other teams in the fantasy
premier league to see how well they fare.
|