UNIVERSITY OF OXFORD COMPUTING LABORATORY Programming Tools Group Oxford University Computing Laboratory has a fully funded three year research studentship working in the Programming Tools Group with the abc team: http://progtools.comlab.ox.ac.uk http://aspectbench.org
PROJECT SUMMARY
Software systems are rarely written from scratch: they evolve over long periods of time. When a change is made, this often affects many different locations in a system, and it is hard to make a change consistently. For that reason, automated tools to help the process of software change are desirable. "Refactoring" refers to the process of restructuring an existing piece of software, often prior to introducing new functionality, or to take advantage of a new technology. Refactoring must preserve the behaviour of existing code, and tools that help in refactoring both assist in the restructuring process and in checking that the behaviour has not changed.
Unfortunately today's refactoring tools are very hard to construct, they are still quite limited in functionality, and they often contain bugs. This project aims to construct a framework for better refactoring tools. In particular, the work is driven by refactorings for a new set of language features, called `aspect-oriented programming' that have recently been added to Java.
Our framework will be based on developments in three separate areas of computer science: * "strategies" to control the process of rewriting program code, from the term rewriting community * "reference attribute grammars" to specify the conditions that guarantee behaviour is preserved, from the compilers community * "incremental evaluation" of declarative rules, from the functional and logic programming community.
The quality of our framework will be assessed by coding selected case studies using alternative methods. In particular, we shall implement several refactorings directly in Eclipse, the leading development environment for writing aspect-oriented programs in industry.
SELECTION CRITERIA
The PhD student will be concerned with the theoretical foundations of the refactoring framework, for instance proofs of correctness for refactorings, and also for the incremental evaluation mechanism. We are thus looking for someone with good mathematical skills, in particular regarding formal properties of type systems and program analyses. Candidates must have an outstanding undergraduate or master's degree in computer science. More generally, candidates must satisfy the usual requirements:
http://web.comlab.ox.ac.uk/oucl/prospective/dphil/dphil-criteria.pdf
for doing a doctorate at Oxford.
HOW TO APPLY
The deadline for applications has been extended to July 17, 2007, but earlier applications will be reviewed immediately, so candidates are encouraged to apply as soon as possible. Previous applicants need not re-apply. To apply you need to download the University's application form from:
http://www.admin.ox.ac.uk/postgraduate/apply/forms
You will need to submit references and a transcript with your application. It is also required to submit a research proposal: in this proposal, please elaborate on the reasons why you are interested in this project, and the research questions you find most exciting and important to address within the scope of the project. To make a convincing proposal, you may wish to consult some of the suggested reading below.
Please submit your application to:
Mrs. Julie Sheppard Secretary for Graduate Studies Oxford University Computing Laboratory Wolfson Building Parks Road Oxford OX1 3QD United Kingdom AND NOT TO THE ADDRESS ON THE APPLICATION FORM
FURTHER INFORMATION
We are happy to discuss any of the above informally with prospective candidates. Just email one or all of the project leaders:
Oege de Moor (oege@comlab.ox.ac.uk) Torbjorn Ekman (torbjorn@comlab.ox.ac.uk) Mathieu Verbaere (matv@comlab.ox.ac.uk)
SUGGESTED READING
Avgustinov et al, Semantics of Static Pointcuts in AspectJ, POPL 2007 http://progtools.comlab.ox.ac.uk/members/oege/publications/documents/pcseman...
Ekman and Hedin. Rewritable Reference Attributed Grammars, ECOOP 2004. http://www.cs.lth.se/gorel/publications/2004-ReRAGs-LNCS.pdf
Verbaere, Ettinger and De Moor. JunGL: a Scripting Language forRefactoring, ICSE 2006 http://progtools.comlab.ox.ac.uk/publications/icse06jungl
Visser. Program Transformation with Stratego/XT: Rules, Strategies, Tools and Systems in StrategoXT-0.9. Domain-specific program generation. http://www.cs.uu.nl/research/techreps/UU-CS-2004-011.html