1. A method of annotating a computer program, comprising: a) applying a program checking tool to the computer program to produce one or more warnings; b) mapping at least one of said warnings into at least one annotation modification; c) modifying the computer program in accordance with said at least one annotation modification so that the number of annotations in the computer program changes, thereby producing a modified computer program; d) repeating each of steps a), b) and c) until no warnings produced in step a) are suitable for mapping into an annotation modification; and e) providing a user with the modified computer program in which is found at least one annotation.