A software development tool that assigns physical addresses to a relocatable program. This is the last step in preparing software for execution by an embedded system. The resulting file is called an executable. In some cases, the locator's functionality is built into the linker. In others, the operating system might include a loader, which performs the location step. A simplified example showing how the locator assigns code and data to specific physical memory ranges and adds (uninitialized) stack and heap sections. Not shown is that the initialized data must be stored in ROM and copied out into RAM by the startup code.