LFCS offers Summer Studentships for undergraduates to do work related to current research. This is one project proposed for 2002; for more information see the list of proposed projects.
The aim of this project is to extend the Edinburgh Concurrency Workbench with a GXL interface: that is, to enable it to read and write GXL files, which are XML documents matching a particular DTD.
The Edinburgh Concurrency Workbench (CWB) is a tool which can help analyse systems which are ultimately described as labelled graphs. (They are usually defined using a higher level language like CCS, the calculus of communicating systems studied in the CS4 concurrency course, though that is probably not very relevant here.) The CWB is written in Standard ML.
GXL, the Graph Exchange Language, is a way of recording graphs in XML (so a GXL document represents a graph as an XML document which matches the GXL DTD). It's been designed as a format for exchanging information between reverse engineering tools. A reverse engineering tool typically starts from the code for a system and helps the user to understand its structure in any one of a large number of ways, e.g., by generating UML diagrams describing it.
The CWB isn't a reverse engineering tool, but there are several reasons why the reengineering tool world is relevant to it. Reverse engineering tools have features which might be useful to a user of the CWB, e.g. visualisation features. Conversely, the CWB might be useful in conjunction with reverse engineering tools: there is some interest from RE tool writers in having easy access to a model-checker for example.
There is a free XML parser (FXP) written in Standard ML available which should, if all goes well, make the basic task rather easy. There is also, from a previous CS4 project, a CWB module for accepting descriptions of processes as labelled transition systems. This is a closely related task, but it's not immediately obvious whether it will be sensible to reuse code from that or just look at it for ideas.
If the basic part of the project can be completed before the money runs out there are various more interesting extensions, e.g., using the new GXL interface to experiment with combining the CWB with a particular reverse engineering tool; considering how to use higher-level structure than just the plain graph; integrating the new GXL interface with the prototype GUI for the CWB.
In order to be suitable for this project a student should have:
This project might interest someone who is interested in XML, reverse engineering, concurrency, tool interoperability, ML, or any combination of these. If you are interested, please contact Perdita Stevens directly.
Back to the list of proposed projects | Please note that project proposers have complete discretion in selecting students, and we do not expect all project positions to be filled. |