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]](non-reflexive/example.gif)
An example of a simple interaction is
The corresponding syntax for the above interaction is
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: 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:
![[A dynamic interaction]](non-reflexive/reduction.gif)
![]()
![[A reflexive graph]](reflexive/example.gif)
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.
while loop.
Michael Norrish <Michael.Norrish@cl.cam.ac.uk>
Last modified: Wed Nov 18 15:57:55 GMT 1998