1. A method, comprising: translating, page-by-page, one or more pages of a software program written with a first instruction set architecture (ISA) into a second ISA using at least one processor of a multi-processor system; translating one or more further pages of the software program using at least one further processor when the one or more pages of the software program include a branch to the one or more further pages of the software program; and executing at least part of the translated software program using at least one other processor of the multi-processor system.