1. A computer implemented method for generating a target program from a source program, the source program written using a high level language supporting data parallel processing, the target program adapted for use in a data parallel computer, said computer implemented method comprising the steps of: (1) locating in said source program a parallel instruction requiring performance of a type conversion operation involving a base type and a target type and a promotion operation; (2) calculating a first run-time cost resulting from executing code generated by compiling said promotion operation, followed by executing code generated by compiling said type conversion operation; (3) calculating a second run-time cost resulting from executing code generated by compiling said type conversion operation, followed by executing code generated by compiling said promotion operation; and (4) compiling said type conversion operation and said promotion operation to be executed in an order selected according to said first and second run-time costs to thereby generate the target program, such that an actual run-time cost of executing said compiled conversion and promotion operations is minimized.