1. A computer implemented method for generating a typed intermediate representation of a computer program, the method comprising: receiving a source code representation of the computer program in an object-oriented language, the source code representation comprising code portions related to defining one or more classes; and based on the source code representation, generating the typed intermediate representation of the computer program comprising at least some class name-based information related to the one or more classes defined in the source code representation along with at least some structure-based information related to the one or more classes defined in the source code representation, by generating a class name-based representation of at least one of the one or more classes defined in the source code, and generating a corresponding structure-based record type representation of the at least one of the one or more classes defined in the source code.