1. A method for generating self-steering executable code, the method comprising: analyzing program code; identifying a given portion of code in the program code; adding at least one optimized version of the given portion to the program code; adding a selection mechanism to the program code, said selection mechanism being configured to select between two or more versions of the portion of code during runtime; and compiling the program code with the added optimized version and the selection mechanism.