Program Understanding and Re-engineering: Calculi and Applications

The aim of the PURe research project is to develop calculi for program understanding and re-engineering. Formal techniques that have traditionally been developed for and applied to forward engineering of software, are applied in reverse direction, i.e. for the understanding and re-engineering of existing (legacy) program code. Read more.

Research Team

PURe-related research opportunities (at the undergraduate and post-graduate levels) are announced here.


The project aims to produce relevant contributions in the following areas:

  • Classification (of algorithms, components and architectures)
  • Refinement calculi (for data structures, algorithms and components)
  • Complexity inference
  • Reverse engineering techniques and calculi
  • Technology of visual animation tools for the developed calculi


  • PUReCafe: weekly scientific colloquium. Local and invited speakers cover a wide range of subjects and spark lively debate.
  • First PURe Workshop and other events.


More information can be found in the Y1 and Y2 Progress Reports.

Selected subprojects

  • Camila: VDM-like formal specification inside the functional programming language Haskell.
  • VooDooM: Analysis, transformation, and translation of VDM-SL specifications.
  • GenericSlicing: development of generic slicing techniques.
  • PointFree: development of tools and libraries to program and reason in the point-free style of programming.
  • 2LT: Two-level transformation, for data mappings, format evolution, query migrations, and more.

Forthcoming projects

Project info

Telefone +351 253604463 (direct) or +351 253604430
Fax +351 253604471

Supported by FCT under contract POSI/ICHS/44304/2002 (74 KEuro)
Start Date 15th October 2003
Duration 3 years
Hosted by Departamento de Informática, Universidade do Minho

Links to Related Projects/Sites