Defined as the translation of the program into another language. This usually produces assembly code.

Intermediate Languages

Compilers perform translations between intermediate forms before reaching the compiled language. These are IR’s (intermediate languages). These intermediate languages are ordered by levels of abstractions:

  • Source code to assembly

These are useful because lower level features are hidden by higher labels.

  • You can achieve higher levels of optimization by handling registers and memory layout.

However, lower levels obscure higher level meaning by being too niche.