Standard ML is an influential functional programming language, designed by the research community, and specified by a formal definition. It has a formally specified behaviour which makes it especially beneficial for the development of dependable software, such as theorem proving tools. Developed in Edinburgh, PolyML is a widely used open-source framework for software development in Standard ML . It has recently been used for research into quantum information, based on the Quantomatic system, and has a long history of use in computer science and safety-critical software (over 5 million pounds of research has been based on it, in the UK alone, over the last few years).
PolyML's support for concurrency, efficient compilation, saved sate, and a dynamic environment, seem to make it perfect for an in-browser scripting language.
The aim of this project is to implement and evaluate a PolyML plugin for firefox that lets ML programs be run within the browser. Existing plugins for other languages, such a python, already exist and will help guide the project . The project can be taken in a number of directions, depending on the student's interests:
Nothing special; access to a DICE machine.
In its entirity, this is a demanding project that will require the student to delve into the difficult task of writing Firefox plugins, understand a variety of languages and large software toolkits, as well as implement concurrent programs in Standard-ML. However a basic version of this project is also possible by focusing on just the software engineering aspects.