Determining the shortest process migration paths for program compilation using a dynamic programming approach

Programs written in multiple, partially disjoint versions of a high-level language may have to migrate for program compilation in the environment in which the versions are distributed. The decisions made during program compilation concerning which node is to be selected from the possible ones supporting those disjoint features constitute a process migration path. The shortest paths which minimize the time spent in process migration can be determined using a dynamic programming approach. The approach is versatile in that it determines some of the shortest paths in a branch-and-bound way and determines all of the shortest paths in a non-brute force way by pruning those branches at the turning points that version expansion is not necessary.