In
computer science, an
intermediate language is the language of an
abstract machine designed to aid in the analysis of
computer programs. The term comes from their use in
compilers, where the source code of a program is translated into a form more suitable for code-improving transformations before being used to generate
object or
machine code for a target machine. The design of an intermediate language typically differs from that of a practical
machine language in three fundamental ways: