PhD on refactoring at Oxford

Oege.de.Moor at comlab.ox.ac.uk Oege.de.Moor at comlab.ox.ac.uk
So Jun 17 19:50:44 CEST 2007


           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 at comlab.ox.ac.uk)
Torbjorn Ekman (torbjorn at comlab.ox.ac.uk)
Mathieu Verbaere (matv at 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/pcsemantics.pdf

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




Mehr Informationen über die Mailingliste IFI-CI-Event