AIS Project Proposals



Visualisation of Persistent Hyper-programs

Proposer : Quintin Cutts

Second Supervisor : Stephen Brewster

Summary: This project will investigate the increased application of hyper-programming within an integrated programming environment.

The hyper-program representation of code represents a radical divergence from traditional programming language concepts. This is because it can contain direct links to arbitrarily complex manifest values, such as records, arrays, procedures and abstract data types. Traditional languages only allow simple manifest values to be included in code, such as integers, strings and reals. The representation is of interest both statically and at run-time, as follows:
A first prototype of the hyper-programming technique has been implemented. The aim of this project is to decide how it can be used to enhance the various processes within a programming environment. The move away from flat text-based program representations will require significant analysis of existing visual and sound based programming techniques, providing a strong link with the HCI branch of the course. Potential areas of application for hyper-programming include: There are undoubtedly other applications of hyper-programming within a programming environment. The aim of this project is to explore a number of different applications, including those above and perhaps some others, and then to design, implement and incorporate at least one of these applications into the existing programming environment.

References
Exploiting Persistent Linkage in Software Engineering Environments
Persistent Hyper-Programs
Reflection and Hyper-Programming in Persistent Programming Systems

Persistent Store Measurement and Visualisation

Proposer : Quintin Cutts

Second Supervisor : Stephen Brewster

Summary: This project will develop techniques to improve understanding of persistent system operation in order to lay foundations for the next generation of system implementations.

Populated persistent stores have reached a level of complexity beyond our understanding. The graphs of objects in which the programming language data structures are implemented can be reckoned with when considering one or two values, but when these graphs represent hundreds of thousands of values, there are currently few successful techniques for assessing them. In order to evaluate execution models and object management implementations accurately, it is essential that mechanisms are developed to clarify the complexity .

The aim of this project is to develop a number of store measurement and visualisation techniques enabling improved understanding of object store operation. These can operate both statically and during system execution. Use of these techniques will educate the development of the next generation of machine and storage architectures. Some potential research questions are: Because of the complexity of the data to be understood, the use and development of advanced representation techniques will be required in the project. This may involve visualisation or, particularly for run-time analysis, the use of sonic techniques. Sound is appropriate here since we can hear changing sounds faster than we can see changing images, by about an order of magnitude.

The work will be undertaken in the context of the Napier system, since stores of significant complexity have been built in that system. However, I am keen to make comparisons between Napier, a procedure-based language, and Pjava which as you all know is object-oriented. This is part of an ongoing effort with other researchers around the world to assess persistent system implementations and to find both general and paradigm-dependent measurement techniques and optimisations.

References
Work has been undertaken within this department, most recently by Peter Bailey and Tony Printezis and published internally, which primarily focusses on the execution behaviour of systems. Additionally, measurement of store behaviour was undertaken in previous years here and published in the FIDE research report series (FIDE 92/58, 93/71). Little other measurement work concerning orthogonally persistent systems is available.