Applications that run on multiple computer architectures are called machine-independent, or cross-platform.
This procedure includes composing, or re-composing, the application's code to suit the target platform.
[2] Software languages such as Java are designed so that applications can migrate across architectures without source code modifications.
[3] Many languages offer a machine independent intermediate code that can be processed by platform-specific interpreters to address incompatibilities.
[4] The transitional representation characterises a virtual machine that can execute all modules written in the intermediate dialect.