Proposer: Stephen Gilmore, 505189, stg@inf.ed.ac.uk
Self-Proposed: No
Supervisor: Stephen Gilmore, 505189, stg@inf.ed.ac.uk
Subject Areas: Compilation, Programming Languages and Functional Programming, WWW Tools and Programming,
Suitable for the following degrees: BSc in Artificial Intelligence and Computer Science, BSc in Artificial Intelligence and Mathematics, BEng in Artificial Intelligence and Software Engineering, BSc in Computer Science, BEng in Computer Science, BEng in Computer Science and Electronics, BSc in Computer Science and Management Science, BSc in Computer Science and Mathematics, BSc in Computer Science and Physics, BEng in Electronics and Software Engineering, BEng in Software Engineering,
Principal goal of the project: This project is to develop a Web interface to the Imperial PEPA compiler. This project relates to another project, Hejira.
Description of the project:
Quantitative analysis of stochastic process models uses numerical computing procedures to compute measures of interest over a model. Dedicated passage-time analysers such as Knottenbelt's Hydra analyser perform such computations automatically when presented with a stochastic process model. Hydra models can be automatically generated from a stochastic process algebra model in Hillston's PEPA language using Bradley's Imperial PEPA Compiler, ipc.
Software tools such as ipc can be difficult for a non-expert user to set up and install. Further, improvements to the tools are not automatically propagated to the users. A modern alternative to the download-configure-make-install cycle is to make software available over the Web, allowing users to run the software from their browser.
The ipc tool is written in the functional programming language Haskell, and it is infeasible to rewrite software which is as complex as ipc in Java in the time available for the project. The method of implementation instead will be to expose ipc using WASH. WASH is a family of embedded domain specific languages (EDSL) for programming Web applications. Each language is embedded in the functional language Haskell, which means that it is implemented as a combinator library. WASH is to be used to implement a Web presentation layer for ipc.
Preparation in advance of the start of the project
Because the WASH system will be unfamiliar, and the PEPA language will be unfamiliar, and because the Haskell programming lanaguage may be unfamiliar, the following background reading and preparation should take place in advance of the start of the semester:
- studying the Haskell programming language;
- studying the implementation of the Imperial PEPA compiler;
- studying the WASH system of Web authoring for Haskell;
- using WASH to install and modify Haskell implementations on a Web server.
Resources Required: Freely available software
Degree of Difficulty:
This project has significant technical content in Web-centric computing and systems level Web application implementation. Further, the purely functional style of programming will be unfamiliar to many, and may be difficult to pick up. For these reasons this project is suitable only for a student with strong technical skills who is interested in learning new programming languages and is seeking a challenge.
Background Needed: The third-year Functional Programming and Specification course is particularly relevant.
References: