Patent ID: 7725881

Claim:
A method comprising: identifying procedure symbols and global variables in compiled code and an associated symbol table; performing for each of one or more procedures of the compiled code: performing for each instruction of a respective procedure of the one or more procedures of the compiled code; reading a respective instruction of the respective procedure, checking memory addressing with respect to the respective instruction to determine whether an address of a variable is taken, the variable is read, or the variable is written, determining whether the variable is a global variable, classifying the global variable as being read, written, or taken, when the variable is determined to be the global variable, based on a result of the checking memory addressing, and updating a global-variable-to-procedure mapping and a procedure-to-global-variable mapping based on the classifying; and the method further comprising: extracting coupling metrics based, at least in part, on the global-variable-to-procedure mapping and the procedure-to-global-variable mapping, wherein the method is implemented on one or more computing devices.