Patent ID: 7117488

Claim:
A computer program product that includes a medium usable by a processor, the medium comprising a sequence of instructions which, when executed by said processor, causes said processor to execute a method of generating safe code from a source code representation, the method comprising: generating an intermediate code format representation from the source code representation, the intermediate code format representation comprising at least a first and a second basic block, the first basic block having a first domination level in a dominator tree, the second basic block having a second domination level in a dominator tree, higher than the first domination level, the first basic block dominating the second basic block by an offset value between the first domination level and the second domination level, the first basic block comprising a plurality of instructions including a first instruction, the second basic block comprising at least a second instruction, the second instruction comprising an operand; annotating the plurality of instructions in the first basic block with basic block identifying information; the basic block identifying information identifying the first basic block; annotating the first instruction in the first basic block with an instruction identifier indicating a relative position of the first instruction within the plurality of instructions in the first basic block; identifying a maximum instruction identifier value for the first basic block, the maximum instruction identifier value comprising the highest relative position for the plurality of instructions in the first basic block; annotating the operand of the second instruction with a relative basic block identifier, the relative basic block identifier identifying the first basic block by specifying the offset value; annotating the operand of the second instruction with the instruction identifier; verifying the second instruction by ensuring that the instruction identifier annotated to the operand of the second instruction does not exceed the maximum instruction identifier value; verifying the second instruction by ensuring that the relative basic block identifier does not exceed the second domination level; converting the intermediate code format representation into an executable format representation; and executing the executable format representation.