1. A method for configuring an application program for execution on a hardware platform that includes a primary processing unit and a co-processing unit, the method comprising: for an assumed virtual architecture for the co-processing unit, compiling and linking device source code included in a non-executable version of the application program to generate device virtual assembly code; for an assumed real architecture for the co-processing unit, translating at least a portion of the device virtual assembly code to generate device machine code; and storing both the device virtual assembly code and the device machine code in a device code repository included within an executable version of the application program.