Student projects from Philippa Gardner and Michael Norrish

Implementing Reflexive Action Graphs

Proposer: Philippa Gardner <pag20@cl.cam.ac.uk>

Supervisor: Michael Norrish <mn200@cl.cam.ac.uk>

Milner's action graphs provide a notation for describing many features arising from interactive systems. As well as the syntactic definition, there is a good intuitive account using graphs. The principal goal of the project is to extend Norrish's implementation of action graphs to account for reflexion. Reflexion is a feedback operator, which models the while loop in imperative programs, for example.

An action graph looks like:

[A static action graph]

An example of a simple interaction is

[A dynamic interaction]

The corresponding syntax for the above interaction is

[A formula]

Norrish has developed a system (written in SML with Tk extensions) that treats action graphs of this form. Last year, a student worked on a simpler version of the same task as a PartII project. This current project is to extend Norrish's system to handle reflexive action graphs. In these graphs, the pictures above are complicated by allowing the possibility that links may "loop back" on themselves, as the following graph illustrates:

[A reflexive graph]

This notion also has an appropriate syntactic presentation. As with the existing non-reflexive system, the new system for the reflexive graphs must maintain a smooth connection between the graphical and syntactic presentations. For example, the user might type in a term, and the implementation would return the corresponding graph. Similarly, the user might build a graph, and the implementation would check that it was well-formed and give back the corresponding syntax.

In addition to extending the system to handle reflexion, the project also allows for a number of other extensions:

This project would suit an experienced programmer able to cope with and modify a large (8000+ lines of SML) body of existing code. A good understanding of theory is not absolutely required, but would be a definite advantage. Further, the programmer should be interested in programming graphical user interfaces, as this is an important part of the project.
Michael Norrish <Michael.Norrish@cl.cam.ac.uk>
Last modified: Wed Nov 18 15:57:55 GMT 1998