Platform independent processing of the source code is performed, such as
lexical analysis, semantic analysis, syntax analysis, and platform
independent optimization, and an intermediate representation of the
source code is generated. This intermediate representation is carried
forward into the next stage of processing, which is platform dependent
processing. The intermediate representation undergoes machine specific
analysis and an executable representation (i.e., executable code) of the
source code for a particular platform is generated. However, the
intermediate representation, which has not been converted to a machine
specific representation, is included with the executable representation.
The source code can essentially be ported to a different platform by
extracting the intermediate representation and performing platform
dependent processing on the intermediate representation. The extracted
intermediate representation, which has already undergone platform
independent processing, is processed for the target platform and an
executable representation for the target platform is generated.