Cross compiler
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is run. Cross compiler tools are generally found in use to generate compiles for embedded system or multiple platforms. It is a tool that one must use for a platform where it is inconvenient or impossible to compile on that platform, like microcontrollers that run with a minimal amount of memory for their own purpose. It has become more common to use this tool for paravirtualization where a system may have one or more platforms in use. Not targeted by this definition are source to source translators, which are often called by the name of cross compiler. The fundamental use of a cross compiler is to separate the build environment from the target environment. This is useful in a number of situations: Use of virtual machines (such as Java’s JVM) resolves some of the reasons for which cross compilers were developed.