Storage must be allocated for user-defined data structures, variable, and constants. The compiler also facilitates procedure linkage; that is, the return address for a procedure call must be stored somewhere.
This can be though of as binding a value to a storage location and the binding can be thought of as a mapping:
Source Language Target Machine
Thus, although some of the later optimization phase is independent of the machine, the run-time storage algorithms are somewhat machine dependent.