[Haskell] PhD on refactoring at Oxford
Oege.de.Moor at comlab.ox.ac.uk
Oege.de.Moor at comlab.ox.ac.uk
Sun Jun 17 13:50:45 EDT 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
More information about the Haskell
mailing list