1 Assume small number of registers (16-32)
2 Optimizing use is up to compiler
3 HLL programs have no explicit references to registers
3.1 usually - think about C - register int
4 Assign symbolic or virtual register to each candidate variable
5 Map (unlimited) symbolic registers to real registers
6 Symbolic registers that do not overlap can share real registers
7 If you run out of real registers some variables use memory