A computer-implemented method comprising: receiving, by a binary translator, at a host platform, a software program (110A, 110B) written for a specified guest platform different from the host platform, wherein the software program uses a set (122A, 124A, 126A, 128A) of shared objects or dynamically loaded libraries, and wherein the software program is not compatible with the host platform; emulating the specified guest platform within the host platform; determining at run time, by the binary translator, whether the host platform has a corresponding shared object or dynamically loaded library, wherein the corresponding shared object or dynamically loaded library implements a common external interface with a specified shared object or dynamically loaded library from within the set of shared objects or dynamically loaded libraries, and wherein the specified shared object or dynamically loaded library and the corresponding shared object or dynamically loaded library implement similar or substantially the same function calls and implement similar or substantially the same behavior in response to the function calls; if the host platform has the corresponding shared object or dynamically loaded library, using at run time, by the binary translator, the corresponding shared object or dynamically loaded library in place of the specified shared object or dynamically loaded library for execution of the software program within the host platform by dynamically modifying links (112A, 112B, 114A, 114B) in the software program to link to the corresponding shared object or dynamically loaded library (122B, 124B) in place of the specified shared object or dynamically loaded library; and if the host platform lacks the corresponding shared object or dynamically loaded library, performing at run time, by the binary translator, a binary translation of the specified shared object or dynamically loaded library (126A, 126B, 128A, 128B) for execution of the software program within the host platform. receiving, by a binary translator, at a host platform, a software program (110A, 110B) written for a specified guest platform different from the host platform, wherein the software program uses a set (122A, 124A, 126A, 128A) of shared objects or dynamically loaded libraries, and wherein the software program is not compatible with the host platform; emulating the specified guest platform within the host platform; determining at run time, by the binary translator, whether the host platform has a corresponding shared object or dynamically loaded library, wherein the corresponding shared object or dynamically loaded library implements a common external interface with a specified shared object or dynamically loaded library from within the set of shared objects or dynamically loaded libraries, and wherein the specified shared object or dynamically loaded library and the corresponding shared object or dynamically loaded library implement similar or substantially the same function calls and implement similar or substantially the same behavior in response to the function calls; if the host platform has the corresponding shared object or dynamically loaded library, using at run time, by the binary translator, the corresponding shared object or dynamically loaded library in place of the specified shared object or dynamically loaded library for execution of the software program within the host platform by dynamically modifying links (112A, 112B, 114A, 114B) in the software program to link to the corresponding shared object or dynamically loaded library (122B, 124B) in place of the specified shared object or dynamically loaded library; and if the host platform lacks the corresponding shared object or dynamically loaded library, performing at run time, by the binary translator, a binary translation of the specified shared object or dynamically loaded library (126A, 126B, 128A, 128B) for execution of the software program within the host platform.