1. A method for programming a heterogeneous computer system including first and second processors, the method comprising: adding directives to source code of said first processor to produce first processor source code with directives; and computationally unifying said first processor source code with directives to produce unified first processor source code and unified second processor source code.