Patent ID: 8434064

Claim:
One or more tangible device-readable memory with device-executable instructions for performing acts comprising: analyzing a program at compile-time to compute a set of objects associated with each instruction in the program, the set of objects associated with the instruction comprising objects that can be written by the instruction; assigning a first color to instructions and associated objects that are identified as safe; assigning a second color to an instruction and associated objects that are identified as unsafe; for each instruction identified as unsafe, defining a color set associated with the unsafe instruction as a union of the unsafe instruction's associated set of objects and the object pointed to by a pointer associated with the unsafe instruction; determining if two color sets intersect; if two color sets intersect, creating a new color set by merging the two intersecting color sets; repeating the determining and creating steps until each color set is disjoint; and assigning a different color to each disjoint color set.