1. An apparatus for translating a multiple user program into a native machine code to run on a native computer hardware having memory means and an operating system that is capable of detecting whether the program has an instruction set architecture different from a native instruction set architecture, the memory means having a source file comprising the program to be translated, said apparatus comprising: means for defining at least one source code module comprising a plurality of blocks of code mapped to the memory means by the operating system, said blocks having one or more source instructions, with each block beginning with one of said source instructions and ending with a branch or a target of said branch; means for creating a virtual instruction pointer which points to one of said source instructions to be executed; and means for executing at least one of said source instructions by translating corresponding at least one said block, storing said translated block in a private translation buffer, and creating a shared translation file for said translated block so that said shared translation file is adapted to be accessed by at least one of a plurality of clients.