Programming Tools Group University of Oxford, UK http://progtools.comlab.ox.ac.uk http://aspectbench.org fully funded 3-year PhD studentship << numerous paid 2-months internships << Applications from APPSEM members (or their students) would be particularly welcome! 1. PROJECT SUMMARY: ASPECT REFACTORING TOOLS 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). 2. REQUIREMENTS 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. 3. HOW TO APPLY The deadline for applications is March 20, 2007. * For the PhD studentship, follow the instructions on http://web.comlab.ox.ac.uk/oucl/prospective/dphil/ Clearly mark your application "Aspect Refactoring Tools project". Also send a full electronic copy of your application to oege@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@comlab.ox.ac.uk. 4. 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)