[plt-scheme] Positions at Oxford: refactoring tools

From: Oege.de.Moor at comlab.ox.ac.uk (Oege.de.Moor at comlab.ox.ac.uk)
Date: Mon Feb 12 11:22:08 EST 2007

          Programming Tools Group
         University of Oxford, UK      


 >> fully funded 3-year PhD studentship  <<
   >> numerous paid 2-months internships <<

         Applications from 
         scheme programmers (or their students) 
         would be particularly welcome!

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 attributed 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.

The project is funded by the EPSRC (UK equivalent of NSF).


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. Funding is provided to pay
for university fees at EU level (overseas candidates need supplementary
funding), plus subsistence, travel, equipment etc.

The 2-months positions are intended to assist with implementation work.
We are thus looking for highly skilled Java programmers; familiarity
with program analysis, formal type systems and so on will be an
advantage. These internships are in fact short-term appointments
as research assistants at the University of Oxford, and so the holders
will be paid a salary. Interns can be outstanding undergraduate 
students who wish to gain research experience.


The deadline for applications is March 20, 2007.

* For the PhD studentship, follow the instructions on


  Clearly mark your application "Aspect Refactoring Tools
  project".  Also send a full electronic copy of your application 
  to oege at comlab.ox.ac.uk, by March 20, 2007. 

* For the 2-months positions, send a letter explaining your
  interest in the project, plus a full cv and the names of
  3 referees to oege at comlab.ox.ac.uk.


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)

Posted on the users mailing list.