Final answer:
In a system that does not support swapping, the compiler binds symbolic addresses to relocatable addresses, and the loader then binds the relocatable addresses to physical addresses.
Step-by-step explanation:
In a system that does not support swapping, the compiler normally binds symbolic addresses (variables) to relocatable addresses. This means that the compiler translates the symbolic addresses in the program into relocatable addresses that reflect the memory layout of the program.
As swapping is not supported, the loader then binds the relocatable addresses to physical addresses. The loader is responsible for loading the program into memory and assigns the physical memory locations for the relocatable addresses.
Therefore, the correct option in this case is option (c), where the loader binds relocatable addresses to physical addresses.