1. A method executed by a processor for performing static analysis on source code having a low level language source code embedded in a high level language source code, wherein the high level language source code is represented in a high level representation that the static analysis can be performed on, the method comprising the steps of: transforming the embedded low level language source code to a high level representation that does not retain the full semantics of the low level language source code and that the static analysis can be performed on, by identifying a set of instructions in the low level language source code that represents a single high level statement in the high level representation, and transforming the set of instructions to represent the single high level statement in the high level representation; and performing static analysis on the high level representation of the high level language source code and the high level representation of the low level source code.
9. The method according to claim 1 , wherein the step of performing static analysis of the high level representation comprises one or more of the following: identify errors in the source code; determine worst case execution time of the source code; determine security risks of the source code; determine correct implementation of access policies in the source code; determine memory consumption of a device performing the instructions of the source code; determine the battery consumption of a device performing the instructions of the source code; and determine information describing the nature of the source code, such as statistics and structure.