A method for achieving real time computing, comprising: translating at least part of a software program written with a first instruction set architecture into a second ISA using at least one processor (102A-102D) of a multi-processor system; executing the translated at least part of a software program in accordance with the second ISA in real-time using at least one other processor of the multi-processor system; translating one or more first pages of the software program at a time using the at least one processor; during the translation of the one or more first pages two branch instructions being encountered, which address first different pages (1A, 1B) of the software program; in response, one or more of the other processors being operated to carry out the translation of those first different pages(1A, 1B), with the translation of those first different pages (1A, 1B) being carried out concurrently with the translation of the one or more first pages carried out by the at least one processor; at the point where the translation of the one or more first pages is completed, causing the at least one processor or one or more of the other processors to translate a second page of the software program including a number of branch instructions which address second different pages (2A, 2B, 2C); initiating the translation of the second different pages (2A, 2B, 2C) by one or more of the available processors; carrying out the translation of the second different pages (2A, 2B, 2C) concurrently with the translation of the second page or other pages of the software program so long as there are processors that are available to carry out the translation; repeating this process until all pages of the software program are translated. translating at least part of a software program written with a first instruction set architecture into a second ISA using at least one processor (102A-102D) of a multi-processor system; executing the translated at least part of a software program in accordance with the second ISA in real-time using at least one other processor of the multi-processor system; translating one or more first pages of the software program at a time using the at least one processor; during the translation of the one or more first pages two branch instructions being encountered, which address first different pages (1A, 1B) of the software program; in response, one or more of the other processors being operated to carry out the translation of those first different pages(1A, 1B), with the translation of those first different pages (1A, 1B) being carried out concurrently with the translation of the one or more first pages carried out by the at least one processor; at the point where the translation of the one or more first pages is completed, causing the at least one processor or one or more of the other processors to translate a second page of the software program including a number of branch instructions which address second different pages (2A, 2B, 2C); initiating the translation of the second different pages (2A, 2B, 2C) by one or more of the available processors; carrying out the translation of the second different pages (2A, 2B, 2C) concurrently with the translation of the second page or other pages of the software program so long as there are processors that are available to carry out the translation; repeating this process until all pages of the software program are translated.