Three-address code

Each TAC instruction has at most three operands and is typically a combination of assignment and a binary operator.

It is also not uncommon that operand names are numbered sequentially since three-address code is typically generated by the compiler.

A refinement of three-address code is A-normal form (ANF).

It is also easier to detect common sub-expressions for shortening the code.

Three-address code may have conditional and unconditional jumps and methods of accessing memory.